TestServlet:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
//获取Session的值
String test = (String)request.getSession().getAttribute("test");
//在Session设置一个值
request.getSession().setAttribute("test", "test");
//转发到Jsp页面
request.getRequestDispatcher("TestJsp.jsp").forward(request, response);
}
TestJsp:
Show:&{requestScope.test }
<!-- 点击标签回Servlet -->
<a href="TestServlet">Click</a>
这时会发现getAttribute("test")取到的是Null,按道理setAttribute("test", "test")之后应该可以在取到,但是不行....
解决方法:
<a href="javascript:location.href='TestServlet';">Click</a>
这种方式相当于重定向了一次到TestServlet,于是可以取到test了。
我觉得是设置完test之后直接转发到了jsp,而jsp的a标签又转发到了TestServlet,
中间没来得及刷新所以取不到值,我理解的可能不太对....