zoukankan      html  css  js  c++  java
  • 关于界面后台信息交互

    之前没什么基础就直接学了框架,对这方面没什么经验,今天废了一天的时间才算是搞明白一些事情。

    1、request.setAttribute()与getAttribute()方法用来传值的一些问题.具体参见链接   https://www.cnblogs.com/JanaChen/p/4790649.html

    request是Servlet.service()方法的一个参数,类型为javax.servlet.http.HttpServletRequest。在客户端发出每个请求时,服务器都会创建一个request对象,并把请求数据封装到request中,然后在调用Servlet.service()方法时传递给service()方法,这说明在service()方法中可以通过request对象来获取请求数据。

    request的功能可以分为以下几种:

    • 封装了请求头数据;
    • 封装了请求正文数据,如果是GET请求,那么就没有正文;
    • request是一个域对象,可以把它当成Map来添加获取数据;
    • request提供了请求转发和请求包含功能。

    response是响应对象,向客户端输出响应正文(响应体)可以使用response的响应流,repsonse一共提供了两个响应流对象:

    • PrintWriter out = response.getWriter():获取字符流;
    • ServletOutputStream out = response.getOutputStream():获取字节流;

    当然,如果响应正文内容为字符,那么使用response.getWriter(),如果响应内容是字节,例如下载时,那么可以使用response.getOutputStream()。

    注意,在一个请求中,不能同时使用这两个流!也就是说,要么你使用repsonse.getWriter(),要么使用response.getOutputStream(),但不能同时使用这两个流。不然会抛出IllegalStateException异常。

    2、form表单是自动提交数据,ajax是可以自己选择提交,当要局部刷新页面的时候,选择的是ajax。以下代码进行解析;

    //前端部分

    $(document).ready(function(){
    $("#form").on('submit',function (e) {
    e.preventDefault();//取消事件的默认动作,也就是取消form表单的自动提交功能
    //alert($("#text").val());可以通过这个方法获取input的value值
    $.ajax({
    //url:"http://localhost:8080/Ajax/index.jsp?bk_id="+$("#text").val(),//通过url传值,还有data方法,目前只考虑到了url,缺点不安全
    url:"http://localhost:8080/loc/test",//url是你的servlet管理页面的url,不是传给这个servlet的url,具体可以看web.xml文件里边关于servlet-mapping映射路径
    type:"post",//post与get两种方法
    dataType:"json",
    /*json格式

              JSON建构于两种结构:

    • “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
    • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
    */
    data:{},
    success:function (data) {

    var html = "<tr><td>"+data[0]+"</td> <td>"+data[0]+"</td> <td>"+data[2]+"</td> </tr>";
    $("#t").append(html);


    },
    error:function(){
    alert("error");
    }
    });
    });
    });

    //后端部分
    String[] s = {"1","2","3"};
    response.getWriter().write(new Gson().toJson(s));
    //gson
    Gson 是google解析Json的一个开源框架,同类的框架fastJson,JackJson等等
    主要解析 两种格式 列表格式 和 map格式



    总结
    今天混淆了request与response,具体区别这边不重复,在前文有,今天也一直纠结在request.getAttribute上,想要
    获得服务器的反馈,需要用到response的输出流来写,这点要注意,关于ajax更多的方面现在还在摸索,希望明天能有其他的收获,
    今天看到一个不刷新页面的方法iframe,其实这个是内嵌一个页面,并不是真的不刷新页面,这边进行一个说明。
  • 相关阅读:
    Codevs 2296 仪仗队 2008年省队选拔赛山东
    Codevs 1535 封锁阳光大学
    Codevs 1069 关押罪犯 2010年NOIP全国联赛提高组
    Codevs 1218 疫情控制 2012年NOIP全国联赛提高组
    Codevs 1684 垃圾陷阱
    洛谷 P1108 低价购买
    Vijos P1325桐桐的糖果计划
    Codevs 3289 花匠 2013年NOIP全国联赛提高组
    Codevs 2611 观光旅游(floyed最小环)
    C语言基础之彩色版C语言(内含linux)
  • 原文地址:https://www.cnblogs.com/shigeng/p/8299192.html
Copyright © 2011-2022 走看看