• Servlet与JSP之间相互传值问题


    一、JSP向Servlet传值

    JSP向Servlet传值的方式有三种:URL后面跟参数、form表单提交、在JSP内置对象Session设置值。

    • URL后面跟参数

        JSP文件:<a href="Receive?name=xiaoijing&password=123456">click me</a>

        Servlet文件:String name=request.getParameter("name");

        说明:href="Receive?name=xiaoijing&password=123456",Receive为请求的目的地(URL),"?"后面跟参数,name为参数名,xiaojing为参数值,多个参数用"&"隔开,在servlet中是通过request.getParameter("参数名")获取的,注意request.getParameter("参数名")获取的所有值都是字符串。

    • form表单提交

        JSP文件:         

    <form action="Send" method="post">
        <input type="text" name="account" />
        <input type="submit" value="提交"/>
    </form>

     

        Servlet文件:String account=request.getParameter("account");

         说明:<form action="Send" method="post">:action后面跟请求的目的地(URL),method请求方法常用的有get和post。<input type="text" name="account" />:传递的参数必须有name的属性,不然在servlet找不到该参数。

     

    • 在JSP内置对象Session设置值

        JSP文件:         

    <%
      session.setAttribute("school", "dgut");
      request.setAttribute("name", "xiao");  //servlet无法获取该参数
    %>

        Servlet文件:

            String school=(String) request.getSession().getAttribute("school");  

        说明:servlet只能接受到到session.setAttribute("school", "dgut")传来的值,无法接收到request.setAttribute("name", "xiao")传来的值,在servlet通过 request.getSession().getAttribute("school")获取参数值。

     

    二、Servlet向JSP传值

    servlet向JSP传值有两种方法:重定向和URL转发。

    • 重定向:

        servlet文件:     

    response.sendRedirect("https://www.baidu.com");//重定向到web应用外部
    response.sendRedirect("Receive");//重定向到web应用内部,URL前面没有“/”,默认在应用根目录下面
    response.sendRedirect("/Monitor/Receive");//重定向到web应用内部,URL以根开头的,前面必须以应用开始

          说明:重定向是路径的跳转,重定向完成后,浏览器会重新发起新的请求,上一次的参数无法转发。

    • URL转发

         servlet文件:

    String url="/JspGetServlet.jsp";//URL必须以“/”开头
    //ServletContext sc=getServletContext();
    //RequestDispatcher requestDispatcher=sc.getRequestDispatcher(url); //通过ServletContext 获取转发器
    RequestDispatcher requestDispatcher=request.getRequestDispatcher(url);//通过request获取转发器
    requestDispatcher.forward(request, response);

         JSP文件:   

    <%=request.getParameter("account") %>   //通过内置对象request获取
    ${param.account}   //通过EL表达式获取

  • 相关阅读:
    Django Model数据访问Making queries
    Tomcat 7源码学习笔记 -5 web app自动reload
    tomcat启动提示server.xml的context节点中不支持source属性警告的解决方法
    javaweb学习总结(三十九)——数据库连接池
    共享文件系统
    高可用+负载均衡 方案
    Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨
    Java对象序列化给分布式计算带来的方便
    JAVABEAN必须继承序列化借口的作用
    keep-alive pipeline区别
  • 原文地址:https://www.cnblogs.com/wujinghua/p/9921236.html
Copyright © 2020-2023  润新知