我的servelet好奇怪!!!帮忙啊

zhongkeruanjian 2003-12-03 02:13:28
关键代码如下:
HttpSession session = req.getSession(true);
if(session==null)
return;
session.setAttribute("id","sdfsdfds");
view = "/adminMain.jsp";
try{
UserBean user = new UserBean();
conn = DBConnection.getDBConn();
SQLCode sqlCode = SQLCode.getInstance();
// String sql = sqlCode.getSQLStatement("validate.select");
String sql = "SELECT * FROM Archives..User_Manager WHERE User_ID=? AND Password =?";
pstmt = conn.prepareStatement(sql.toString());
pstmt.clearParameters(); // clear any previous parameter values
pstmt.setString(1, userName); // set 用户名
pstmt.setString(2, password); // set 密码
rs = pstmt.executeQuery();
if(rs.next())
{

user.setPk_ID(rs.getInt("PK_ID"));
user.setUser_ID(rs.getString("User_ID").trim());
user.setPassword(rs.getString("Password").trim());

user.setHabitus(rs.getInt("Habitus"));
user.setFaculty_Department_ID(rs.getInt("Faculty_Department_ID"));
user.setHide_Question(rs.getString("Hide_Question"));
user.setQuestion_Answer(rs.getString("Question_Answer"));

//把用户信息放在session变量里面
// session.setAttribute("user",user);


if (user.getHabitus()==1)
{
out.println("good");
view = "/adminMain.jsp";
}
else
view = "/userMain.jsp";
}

else
view = "/loginFail.jsp";



}
catch (Exception e) {
e.printStackTrace();
view = "/login.htm";
out.println("ds");
}




out.println("sdfs");
res.sendRedirect(Invariant.HOMEURL+view);
-------------------
执行res.sendRedirect(Invariant.HOMEURL+view)后居然有两个SESSION,我快疯了,结果在下一个JSP的SESSION中得不到“ID”的值,
(我用的是JWSDP1。3开发环境,所以能看到一个WEB应用程序有多少SESSION)
...全文
61 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongkeruanjian 2003-12-03
  • 打赏
  • 举报
回复
哎,算了,用就用吧
但是我就是不明白res.sendRedirect(Invariant.HOMEURL+view);
为什么会出现这种情况!!!
littlecong 2003-12-03
  • 打赏
  • 举报
回复
为什么不用RequestDispatcher呢?
zhang21cnboy 2003-12-03
  • 打赏
  • 举报
回复
估计你子是垃圾吧?别说人家的jsp是垃圾。。。。

在jsp的里面,弄上:
<%page session=true %>
看看
Leemaasn 2003-12-03
  • 打赏
  • 举报
回复
头晕,
不晓得。。。。
zhongkeruanjian 2003-12-03
  • 打赏
  • 举报
回复
如果是true的话,那么检测不存在session的话,服务器就会默认给你新建一个session
而后面你又自己建了一个,这样自然有两个了咯l


我自己好像没有又建一个啊????
我只是res.sendRedirect(Invariant.HOMEURL+view);
我的这个重定向页面绝对没有重建SESSION
zhongkeruanjian 2003-12-03
  • 打赏
  • 举报
回复
res.sendRedirect(Invariant.HOMEURL+view);
服务端以为客户端又重新打开一个窗口,并请求一个URL,结果重新开始了一个会话,他妈的,真他妈的垃圾,
哪个高手帮帮忙啊,
zhongkeruanjian 2003-12-03
  • 打赏
  • 举报
回复
req.getSession(true)与req.getSession(false);的区别是
前者如果没有得到SESSION,那么重新创建一个SESSION,后者是如果没有得到SESSION,那么就返回一个NULL.
我现在已经改成了FALSE,错误依旧,JSP真是垃圾,过路的帮帮忙!!!
allan1031 2003-12-03
  • 打赏
  • 举报
回复
HttpSession session = req.getSession(true);
if(session==null)
return;
session.setAttribute("id","sdfsdfds");

改成
HttpSession session = req.getSession(false);
if(session==null)
return;
session.setAttribute("id","sdfsdfds");
如果是true的话,那么检测不存在session的话,服务器就会默认给你新建一个session
而后面你又自己建了一个,这样自然有两个了咯
zhongkeruanjian 2003-12-03
  • 打赏
  • 举报
回复
res.sendRedirect(Invariant.HOMEURL+view);
服务端误以为客户端又重新一次了会话状态,但是那要怎么才能保证不要误以为呢??(其实是一次会话),我快疯了,各位大哥帮帮忙!!
zhongkeruanjian 2003-12-03
  • 打赏
  • 举报
回复
res.sendRedirect(Invariant.HOMEURL+view);删掉后只有一个SESSION

81,116

社区成员

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

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