zoukankan      html  css  js  c++  java
  • WEB后台传数据给前台

     

    1.利用cookie对象 

    Cookie是服务器保存在客户端中的一小段数据信息。使用Cookie有一个前提,就是客户端浏览器允许使用Cookie并对此做出相应的设置。一般不赞成使用Cookie。

    (1)后台代码

            Cookiecookie=new Cookie("name", "hello");

            response.addCookie(cookie);

    (2)前台代码

       Cookie[]cookies=request.getCookies();

       for(inti=0;i<cookies.length;i++){

                   if(cookies[i].getName().toString().equals("name")){

                           out.print(cookies[i].getValue());

                   }

       }

     

    2.利用session对象

    session对象表示特定会话session的用户数据。客户第一次访问支持session的JSP网页,服务器会创建一个session对象记录客户的信息。当客户访问同一网站的不同网页时,仍处于同一个session中。

    (1)后台代码

            request.getSession().setAttribute("name",name);

            request.getSession().setMaxInactiveInterval(2);

            response.sendRedirect("welcome.jsp");

    (2)前台代码(jsp页面)

    Objectuser=request.getSession().getAttribute("name");

     


    3.利用request重定向,设置setAttribute

    (1)后台代码

    request.setAttribute("name", "cute");

    request.getRequestDispatcher("welcome.jsp").forward(request,response);  //网址不会改变

    PS:如果后台使用的转发代码为 response.sendRedirect("welcome.jsp"); //网址变为welcome.jsp

    则request设置的参数无效,因为已经切换到另一个请求了,request参数的有效期为本次请求。

    (2)前台代码

    Stringname=request.getAttribute("name").toString();

     

    4.利用Ajax进行异步数据请求(得到的数据可以以json或xml格式返回,便于处理)

    (1)后台代码案例(运用servlet传输数据)

    public class TestServlet extends HttpServlet {

     

            /**

             * Constructor of the object.

             */

            publicTestServlet() {

                   super();

            }

     

            public voiddoGet(HttpServletRequest request, HttpServletResponse response)

                           throwsServletException, IOException {

                   doPost(request,response);

            }

            public voiddoPost(HttpServletRequest request, HttpServletResponse response)

                           throwsServletException, IOException {

     

                   response.setContentType("text/html");

                   PrintWriterout = response.getWriter();

                Stringdata="[{"name":"apple","price":23},{"name":"banana","price":12},{"name":"orange","price":8}]";

                   out.write(data);

                   out.flush();

                   out.close();

            }

     

            /**

             * Initialization of the servlet. <br>

             *

             * @throws ServletException if an error occurs

             */

            public voidinit() throws ServletException {

                   //Put your code here

            }

    }
    2.前台js请求处理数据代码

    function createXMLHttpRequest(){

            varxmlrequest;

            if(window.XMLHttpRequest){

                   xmlrequest=newXMLHttpRequest();

            }elseif(window.ActiveXObject){

                   try{

                           xmlrequest=newActiveXObject("Msxm12.XMLHTTP");

                   }catch(e){

                           try{

                                   xmlrequest=newActiveXObject("Microsoft.XMLHTTP");

                           }catch(e){

                                   xmlrequest="";

                           }

                   }

            }

            returnxmlrequest;

    }

    //获取数据的函数

    function change(){

            var xmlrequest=createXMLHttpRequest();

            xmlrequest.open("POST","TestServlet",true);

            xmlrequest.onreadystatechange=function(){

                   if(xmlrequest.readyState==4&&xmlrequest.status==200){

                           vardata=JSON.parse(xmlrequest.responseText);

                           varcontent="<table border=1>";

                           for(vari=0;i<data.length;i++){

                                   content+="<tr>";

                                   for(oin data[i]){

                                          content+="<td>"+data[i][o]+"</td>";

                                   }

                                   content+="</tr>";

                           }

                           content+="</table>";

                           document.getElementById("test").innerHTML=content;

                   }

            };

            xmlrequest.send();

    }

    总结:在用户访问网站整个生命周期中都会用到的数据用session来存储,例如用户名,登录状态,购物车信息.显示在网页上的信息数据大多通过 request或Ajax方式获取

  • 相关阅读:
    Combine 框架,从0到1 —— 4.在 Combine 中使用计时器
    Combine 框架,从0到1 —— 4.在 Combine 中使用通知
    Combine 框架,从0到1 —— 3.使用 Subscriber 控制发布速度
    Combine 框架,从0到1 —— 2.通过 ConnectablePublisher 控制何时发布
    使用 Swift Package Manager 集成依赖库
    iOS 高效灵活地配置可复用视图组件的主题
    构建个人博客网站(基于Python Flask)
    Swift dynamic关键字
    Swift @objcMembers
    仅用递归函数操作逆序一个栈(Swift 4)
  • 原文地址:https://www.cnblogs.com/lonecry/p/5074664.html
Copyright © 2011-2022 走看看