response.sendRedirect()方法真的会丢失请求属性么?

永远的双肩包 2012-03-05 04:20:10
我百度搜索,都是说会丢失数据,可是我今天试了一下,大致过程是:用户输入账号、密码提交;后台连接数据库验证成功后,直接response.sendRedirect("index.jsp")。我发现重定向的页面也能获取session里的username属性!

index.jsp部分代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name=(String)session.getAttribute("username");
if(name!=null){
%>
欢迎,<%=name %>!|<a href="control?action=logout">退出</a>
<%

}
else{
%>
<form action="control" method="post" >
<input type="hidden" name="action" value="login"/>
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="登录" />
</form>
<%
}
%>


servlet控制器部分代码如下

//如果验证成功
if(dbob.validate()){
HttpSession session=request.getSession();
session.setAttribute("username",username);
response.sendRedirect("index.jsp");
return;
}

...全文
253 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
永远的双肩包 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 a199231 的回复:]

你这样理解就行咯,不是很好的比喻,request==一次请求,session==一个浏览器,application==一个服务器
[/Quote]
哦,谢谢了!结贴~
kingshigang 2012-03-05
  • 打赏
  • 举报
回复
sorry 少了个url
kingshigang 2012-03-05
  • 打赏
  • 举报
回复
回话
session request cookie application
会丢失request设置的参数。
宏Lee 2012-03-05
  • 打赏
  • 举报
回复
你这样理解就行咯,不是很好的比喻,request==一次请求,session==一个浏览器,application==一个服务器
永远的双肩包 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 a199231 的回复:]

session在关闭浏览器,关闭服务器,在设定时间内过期才会失效,sendRedirect是让你当次请求的数据丢失,就是丢失request的
[/Quote]

request.getSession() 这条语句一直让我觉得session也一块丢失,难道session不是绑定在request对象中么?
宏Lee 2012-03-05
  • 打赏
  • 举报
回复
session在关闭浏览器,关闭服务器,在设定时间内过期才会失效,sendRedirect是让你当次请求的数据丢失,就是丢失request的
永远的双肩包 2012-03-05
  • 打赏
  • 举报
回复
是我理解错了么?只是request中的参数、属性会丢失,session绑定的不会?
JSP100选择题 适合考前练习 1 J2EE 中,()类的()方法用于创建对话。(选择一项) a) HttpServletRequest、getSession b) HttpServletResponse、newSession c) HtttpSession、newInstance d) HttpSession、getSession 2 给定一个 Servlet 的doGet方法中的代码片段,如下: request.setAttribute(“name”,”zhang”); response.sendRedirect(“http://localhost:8080/servlet/MyServlt”); 那么在 MyServlet 中可以使用()方法属性 name的值取出来。(选择一项) a) String str=request.getAttribute(“name”); b) String str=(String)request.getAttribute(“name”); c) Object str=request.getAttribute(“name”); d) 无法取出来 3.在Servlet里,能实现重定向的方法有()。(选择两项) A.运用javax.servlet.http.HttpServletRequest接口的sendRedirect方法 B.运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法 C.运用javax.servlet.RequestDispatcher接口的forward方法 D.运用javax.servlet.ResponseDispatcher接口的forward方法 4.利用MyEclipse开发Servlet,下列说法正确的是( )。(只选两项) A. MyEclipse可自动产生web.xml B. MyEclipse不能自动产生web.xml,需要手工编写 C.可利用MyEclipse自带的Tomcat作为Servlet容器 D. MyEclipse没有自带Tomcat,需要自己安装配置。 5.编写Servlet 的doPost方法时,需要抛出异常为()。(只选一项) A.ServletException, IOException B.ServletException, RemoteException C.HttpServletException, IOException D.HttpServletException, RemoteException 6.有关话跟踪技术描述正确的是()。(选择三项) A.Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端 B.关闭浏览器意味着话ID丢失,但所有与原话关联的话数据仍保留在服务器上,直至话过期 C.在禁用Cookie时可以使用URL重写技术跟踪话 D.隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示 …………
常考面试题 1.讲下servlet的执行流程。 Servlet的执行流程也就是servlet的生命周期,当服务器启动的时候生命周期开始,然后通过init()《启动顺序根据web.xml里的startup-on-load来确定加载顺序》 方法初始化servlet,再根据不同请求调用doGet或doPost方法,最后再通过destroy()方法进行销毁。 2.Get和Post的区别 在页面提交数据时,get的数据大小有限制4k,post没有限制,get请求提交的数据在地址栏显示,post不显示,所以post比get安全. 3.有三台服务器,如果在一台服务器上登陆了这个用户,其他两台就不能再登陆这个用户,使用session共享,你是怎么做的。 把所有的session的数据保存到Mysql服务器上,所有Web服务器都来这台Mysql服务器来获取Session数据。 4.写一个自定义标签要继承什么类 SimpleTagSupport,一般调用doTag方法 或者实现SimpleTag接口 5.Jsp如何处理json 在 jsp 中处理 JSON,通常需要配套使用 JQuery 控件,并且导入一些 Common jar 包。 使用 JQuery 控件是因为它能有效的解析并且展示 JSON 数据, 导入Common 则是因为 Java 中的对象并不是纯粹的数据,需要通过这些 Jar 包的处理使之转化成真实数据。 6.如何处理Servlet的线程不安全问题 1.最简单的就是不使用字段变量, 2.使用final修饰变量, 3.线程安全就是多线程操作同一个对象不有问题,线程同步一般来保护线程安全, 所以可以在Servlet的线程里面加上同步方法或同步块。 (Synchronized)可以保证在同一时间只有一个线程访问,(使用同步块导致性能变差,最好不去使用实例变量) 7.Jsp的重定向和转发的流程有什么区别 重定向是客户端行为,转发是服务器端行为 重定向时服务器产生两次请求,转发产生一次请求,重定向时可以转发到项目以外的任何网址,转发只能在当前项目里转发 重定向导致request对象信息丢失。转发则不 转发的url不变,request.getRequestDispatch().forward() 重定向的url改变,response.getRedirect().sendRedirect();

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧