• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    JSP页面间的传值方法总结

    前言

    JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧。试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式。下面来一起看看详细的介绍:

    1. URL 链接后追加参数

    a href="next.jsp?paramA=AparamB=B..." rel="external nofollow" >URL 后面追加参数/a>
    
    jsp:include page="next.jsp">jsp:param name="paramA" value="A"/>/jsp:include> 
    
    jsp:forward page="next.jsp">jsp:param name="paramA" value="B"/>/jsp:forward> 
    
    response.sendRedirect("next.jsp?paramA=AparamB=B...")
    
    window.location = "next.jsp?paramA=AparamB=B..."

    上述几种代码执行时都将携带参数跳转到 next.jsp 页面中。

    在 next.jsp 页面中获取对应参数的方式如下:

    //内嵌的 java 代码
    %String paramA = request.getParameter("paramA"); %>
    
    //如果引入了 EL
    {param.paramA}

    优点:简单性和多浏览器支持(没有浏览器不支持URL)。

    缺点:

       1)传输的数据只能是字符串,对数据类型和大小都有一定的限制;

       2)传输数据的值会在浏览器地址栏里面被看到,安全性等级低。

    2. Form

     form action="next.jsp" method="post"> 
      input type="text" name="paramA" value="A"> 
      input type="hidden" name="paramB" value="B"> 
      input type="submit" value="提交"> 
     /form> 

    在 next.jsp 页面中获取对应参数的方式与 (1)是类似的。

    优点:

    1)简单性和多浏览器支持(同样没有浏览器不支持 form);

    2) 可以提交的数据量比 URL 方式要大的多;

    3)传输的值会在浏览器的地址栏中显示出来,但是有一点黑手段的同样能从页面源码中将参数列表构造出来;

    缺点:

    1)传输的数据也只能是字符串,对数据类型有一定的限制;

    3. 设置 Cookie

    用客户端的认证凭证小小 Cookie 当然也能实现 JSP 页面的传值。

     % 
      Cookie c=new Cookie("paramA","A"); 
      c.setMaxAge(60*60); //cookie 有效期1分钟
      response.addCookie(c); //将cookie 添加到 http响应中
      %>

    想要在 next.jsp 页面读取 cookie,需要调用 request.getCookies() 方法来获得一个javax.servlet.http.Cookie 对象的数组。

    然后遍历这个数组,使用getName()方法和getValue()方法来获取每一个cookie的名称和值。

    //内嵌的 java 代码
    %
     Cookie cookie = null;
     // 获取cookies的数据,是一个数组
     Cookie[] cookies = request.getCookies();
     if(cookies != null ){
      for (int i = 0; i  cookies.length; i++){
       cookie = cookies[i];
       out.print("参数名 : " + cookie.getName());
       out.print("br>");
       out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" br>");
       out.print("------------------------------------br>");
      }
     }else{
      out.println("h2>没有发现 Cookie/h2>");
     }
    %>
    
    //EL 获取方式
    ${cookie.paramA.value}

    优点:

    1)Cookie 的值能够持久化,即使客户端机器关闭,下次打开还是可以得到里面的值;

    2) Cookie 可以帮助服务器端保存多个状态信息,但是不用服务器端专门分配存储资源,减轻了服务器端的负担。

    缺点:

    1)虽然安全性相比 URL 和 Form 要提高了许多,但是也存在黑手段获取客户端 cookie,暴露客户信息。

    4. 设置 Session

    个人认为 session 和 cookie 一个在服务端一个在客户端。

    在它们中添加键值对后,不仅仅是提供了页面之间的传递,其实是一种数据共享的解决方案。

     %  
     session.setAttribute("paramA","A"); 
     response.sendRedirect("next.jsp"); 
     %>

    想要在 next.jsp 读取 session 的方法:

    //内嵌java 片段
    %=session.getAttribute("paramA") %>
    
    //EL 获取方式
    {session.paramA}

    Session 的优缺点可以参照 Cookie。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • ajax的json传值方式在jsp页面中的应用
    • JSP页面间传值问题实例简析
    • JSP页面传值乱码过滤方法
    上一篇:web.xml中如何设置配置文件的加载路径实例详解
    下一篇:ResourceBundle类在jsp中的国际化实现方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    JSP页面间的传值方法总结 JSP,页面,间的,传值,方法,