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;
}

...全文
270 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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绑定的不会?

81,122

社区成员

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

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