jsp与servlet传值相关问题

21 篇文章 0 订阅
5 篇文章 0 订阅

jsp与servlet传值等问题

标签: servlet jsp


好看

在学习servlet的时候遇到些问题,在这里记录一下

jsp传值给servlet,有三种方式:

. form表单提交
. url传值
. java代码传值

form表单

JSP页面:

<input type="text" name="name" value="name"/>

在程序中如下:

ServletRequest requestString name=request.getParameter("name");

可获取jsp传的name

url

<a>标签的 href属性与 <form>标签的 action属性的值一样可以在url上带参数传值: “loginServlet?name=wang”,在 servlet同样用 request.getParameter(“name”)获取;

java代码

java片段代码,servlet只能接到作用域更大的session: session.setAttribute(“name”,”wang”)的内容,而接不到 request的内容。在 servlet里用 request.getSession().getAttribute(“name”)获取 session内容。

servlet给jsp页面传值

一般有两种方法:

. 重定向
. url转发

重定向

具体实现如下:
因为重定向是服务器重新发送一个request请求,所以不能通过request.getAttribute()来接收参数,也可以通过两种方式:

. 在地址后面传递参数的方式
. session方式

在地址后面传递参数的方式:

java代码:

String code = "10002";
resp.sendRedirect("login.jsp?code=" + code);

jsp页面:

<%
 String code = request.getParameter("code");
%>
session方式

java代码:

req.getSession().setAttribute("code",code);
resp.sendRedirect("login.jsp");

jsp页面:

<%String code= (String) session.getAttribute("code");%>
区别:

作用域不同,request只在一次请求里有效,session在整个会话都有效

url转发

具体实现如下:

java代码:

 request.setAttribute( "name ","name"); 
 request.getRequestDispatcher( "login.jsp").forward(request,response); 

jsp页面:

<%

String   s   =(String)request.getAttribute( "name ");

%>

jsp页面就可以取出Servlet的值。

jsp之间传值

两个jsp之间传值一般有form表单、url加参数、java代码session传值几种方法,和上面一样,不赘述;

原因

  1. 重定向是服务端重新发送一个请求,是两个请求request:
    客户端(request1)—>服务器(返回页面1)—>客户端(request2)—>服务器(返回页面2)—>客户端
    两个request不同,传递信息可以用session来实现。

  2. url转发是一个请求,所以可以传递封装进request当中的值:
    客户端(request)—>服务器(页面1forward)—>服务器(返回页面2)—>客户端
    forward的页面跳转是服务端来处理的所以是同一个request

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值