博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet与JSP之间相互传值问题
阅读量:5253 次
发布时间:2019-06-14

本文共 2002 字,大约阅读时间需要 6 分钟。

一、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表达式获取

 

转载于:https://www.cnblogs.com/wujinghua/p/9921236.html

你可能感兴趣的文章
2019春 软件工程实践 助教总结
查看>>
YUV 格式的视频呈现
查看>>
Android弹出框的学习
查看>>
现代程序设计 作业1
查看>>
在android开发中添加外挂字体
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
多线程实现资源共享的问题学习与总结
查看>>
Learning-Python【26】:反射及内置方法
查看>>
torch教程[1]用numpy实现三层全连接神经网络
查看>>
java实现哈弗曼树
查看>>
转:Web 测试的创作与调试技术
查看>>
python学习笔记3-列表
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
线程androidAndroid ConditionVariable的用法
查看>>
stap-prep 需要安装那些内核符号
查看>>
转载:ASP.NET Core 在 JSON 文件中配置依赖注入
查看>>
socket初识
查看>>
磁盘测试工具
查看>>
代码变量、函数命名神奇网站
查看>>