第一个servlet中,只有一个doPost方法,如下:
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String username = req.getParameter("uesrname");
//放到session中
HttpSession hs = req.getSession();
hs.setAttribute("user", username);
PrintWriter pw = res.getWriter();
pw.println("Hello Httpservlet");
res.sendRedirect("bb");
}第二个servlet中,只有一个doGet方法,如下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { HttpSession hs = request.getSession();
if(hs.getAttribute("user")==null)
System.out.println("空");
else
System.out.println("not 空");
}
当执行时候,控制台打印“空”,没有能够在第二个页面中,得到第一个页面中设置的session的值。是什么原因呢?非常谢谢大家啊
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String username = req.getParameter("uesrname");
//放到session中
HttpSession hs = req.getSession();
hs.setAttribute("user", username);
PrintWriter pw = res.getWriter();
pw.println("Hello Httpservlet");
res.sendRedirect("bb");
}第二个servlet中,只有一个doGet方法,如下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { HttpSession hs = request.getSession();
if(hs.getAttribute("user")==null)
System.out.println("空");
else
System.out.println("not 空");
}
当执行时候,控制台打印“空”,没有能够在第二个页面中,得到第一个页面中设置的session的值。是什么原因呢?非常谢谢大家啊
解决方案 »
- 网站登录后如何在跳转的页面上显示当前用户名
- axis2java 生成的java代码调用 xfire 生成的web service 问题
- SSH问题,是少导了包吗?
- tomcat5.5局部连接池配置求教
- 大家帮忙啊,JSP有什么好的解密工具没有啊?
- jsp 中如何限制上传附件大小
- Weblogic安装在D盘上部署的Servlet不能使用,为什么?
- 谁帮我解释下这个类什么意思啊 关于springmvc 和mybatis的
- 大家来谈谈软件测试的相关问题如何??我感觉这是我们的弱项.例如有什么好方法,好工具??
- 请问各位:Dreamweaver4 与 DreamweaverUltraDev 4 有什么区别?
- Servlet接受参数为乱码
- 请教工作问题?
这就要检查一下web.xml中<session-timeout>中的配置,以及
是不是在什么地方清除了Session.
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<body>
<form action="aa" method="post">
输入你的名字:<input type="text" name="username">
<input type="submit" value="确定">"
</form>"
</body>
</html>////////////////////////////////////////////////////// aa 代表的 servlet
public class HelloHttpServlet extends HttpServlet {
@Override
//处理get请求
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
this.doPost(req, res);
}
// 处理post请求
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String username = req.getParameter("uesrname");
//放到session中
HttpSession hs = req.getSession();
hs.setAttribute("user", username);
PrintWriter pw = res.getWriter();
pw.println("Hello Httpservlet");
res.sendRedirect("bb");
}
}////////////////////////////////////////////////////// bb 代表的 servlet
public class ShowUserNameServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { HttpSession hs = request.getSession();
if(hs.getAttribute("user")==null)
System.out.println("空");
else
System.out.println("not 空");
}
}
/////////////////////////////////////////////////////////// 执行情况是:在IE中,输入:
http://localhost:8080/Servlet1/index.jsp,然后点击“提交”,自动转到bb 代表的servlet中。但是从控制台上 看到,打印了“空”,为什么bb 这个servlet没有得到aa 这个servlet中 设置的session的值呢?
首先要确保你的放入session中的值不为空,
然后检查你的浏览器是否关闭了接受站点Cookie的设置。
因为session的使用要用到Cookie。