日期:2014-05-18  浏览次数:20897 次

大家好,为什么我的 request和session 在servlet 与 jsp 之间无法传递?
servlet   中:
abc.java
......
public   void   doPost(HttpServletRequest   request,   HttpServletResponse   response) throws   ServletException,   IOException   {

  String   user   =   request.getParameter( "user ");
  String   pwd   =   request.getParameter( "pwd ");
  HttpSession   session   =   request.getSession();
  session.setAttribute( "jsp ",user);
  request.setAttribute( "jsp ",user);
  RequestDispatcher   dispatcher   =   request.getRequestDispatcher( "/WEB-   INF/jsp/op/opmain.jsp ");
  dispatcher.forward(request,   response);
}
....
..

jsp中
123.jsp
....
...
<%=request.getAttribute( "jsp ")   %>
<%=session.getAttribute( "jsp ")   %>
...
..
为什么得不到   request   与   session   中的值?

------解决方案--------------------
第一,你是把请求转发到了opmain.jsp文件了,所以request.getAttribute( "jsp ")就找不到,但是应该session里面可以找到,好象你servelt里面定义了两个键值一样的,一种可能是request.setAttribute( "jsp ",user);覆盖了 session.setAttribute( "jsp ",user);又不是在同一个请求里面,所以就找不到request里面的值,第二种可能是你在123.JSP里面找的键值为jsp的找不到,因为有两个键值为jsp的,servlet不会自己识别,你也没有给他们一个好的识别方式,所以报错或者找不到值~~
------解决方案--------------------
是不是 String user = request.getParameter( "user ");
String pwd = request.getParameter( "pwd ");这里就是Null,你user对象就是Null,所以取到的就是Null???
------解决方案--------------------
方法没错 判断一下Null