有关在Servlet中使用session值的问题? HttpSession session=request.getSession();session.setAttribute("AccountId",accountid);请楼主检查accountid对象的值是否为期待值!有可能他就是null 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在servlet中不能使用sendreDirect方法用RequestDispatcher.forward()方法试试 回复 tomuno(tomuno):accountid不可能为null,因为我的Servlet中就是靠这个accountid去数据库查找其对应的password,如果accountid为null的话,根本就无法显示后面的jsp页面回复 lukelan(现代原始人):我用你的方法试了一下,后面的页面都无法显示了,本来用sendRedirect方法还是可以显示的,只不过得到对应的session值为空谢谢两位,不过问题还是没有解决啊 你是放在doget 里面的还是dopost 里面的???建议放到doget里面去 使用 getRequestDispatcher(.) 的方法HttpSession session = request.getSession();ServletContext ctx = getServletConfig().getServletContext();String userName = (String)session.getAttribute("UserName");ctx.getRequestDispatcher(Pathname).forward(request, response); response.sendRedirect("http://211.68.39.224:7001/OnlineBankWeb/Main.jsp");==>> 试试String url = "http://211.68.39.224:7001/OnlineBankWeb/Main.jsp";response = (HttpServletResponse) response; //不知道你的servlet怎么写的response.sendRedirect(response.encodeURL(url)); 有两个地方需要注意:1、HttpSession session=request.getSession(); 更换成HttpSession session=request.getSession(true);2、response.sendRedirect("http://211.68.39.224:7001/OnlineBankWeb/Main.jsp");这句可能有问题 servlet 是否运行在服务器http://211.68.39.224:7001,就是main.jsp和servlet程序是否在同一个web应用程序,不是的话是不行的,因为session不可以在不同的web应用程序之间传输或共享。 3、AccountId在setAttribute()时候用得是否不一致 我估计我的问题可能就是zsj51846(听涛)所说的就是main.jsp和servlet程序没有运行在同一个web程序中,可是我把servlet放到main.jsp坐在的web程序中时,我发现这个servlet根本就访问不到,这是怎么回事?是不是一个web程序下只能放一个servlet?我做了一个使用,即在一个web.xml中写了好几个servlet,如下:<web-app> <servlet> <servlet-name>Display</servlet-name> <servlet-class>DisplayUserInput</servlet-class> </servlet> <servlet-mapping> <servlet-name>Display</servlet-name> <url-pattern>/Display</url-pattern> </servlet-mapping> <servlet> <servlet-name>Counter00</servlet-name> <servlet-class>Counter00</servlet-class> </servlet> <servlet-mapping> <servlet-name>Counter00</servlet-name> <url-pattern>/Counter00</url-pattern> </servlet-mapping> </web-app>可是结果是只能访问Display这个servlet(Display是原来的Servlet,Counter00是后来加进去的,类我都已经放到classes下面了),这是怎么回事?谢谢指教 现在已经搞定了,就是 zsj51846(听涛) 所说的,谢谢了上面那个实验弄错了,可以的,当时可能是部署的时候没有把以前的删除干净,所以出现了这样的问题再次感谢大家! 求救各位大神~~~ 启动TOMCAT出现这个错误 用hibernate往mysql里存不了中文的问题 网站问题 总算把CSDN的导航树给剽了 关于weblogic 8.1下数据库连接池的配置的小问题! 关于结束session的问题。(急。在线等待!!!!) 如何通过jdbc连接SQL server2000?各位高手快帮帮忙! java.io.IOException: Stream closed 报错 ajax 从后台传值到前台 jsp下载文件时出现乱码??????????? 导入javax.servlet.*时提示找不到这个包??
用RequestDispatcher.forward()方法试试
accountid不可能为null,因为我的Servlet中就是靠这个accountid去数据库查找其对应的password,如果accountid为null的话,根本就无法显示后面的jsp页面回复 lukelan(现代原始人):
我用你的方法试了一下,后面的页面都无法显示了,本来用sendRedirect方法还是可以显示的,只不过得到对应的session值为空谢谢两位,不过问题还是没有解决啊
ServletContext ctx = getServletConfig().getServletContext();
String userName = (String)session.getAttribute("UserName");
ctx.getRequestDispatcher(Pathname).forward(request, response);
String url = "http://211.68.39.224:7001/OnlineBankWeb/Main.jsp";
response = (HttpServletResponse) response; //不知道你的servlet怎么写的
response.sendRedirect(response.encodeURL(url));
1、HttpSession session=request.getSession(); 更换成
HttpSession session=request.getSession(true);2、response.sendRedirect("http://211.68.39.224:7001/OnlineBankWeb/Main.jsp");
这句可能有问题
servlet 是否运行在服务器http://211.68.39.224:7001,就是main.jsp和servlet程序是否在同一个web应用程序,不是的话是不行的,因为session不可以在不同的web应用程序之间传输或共享。
是不是一个web程序下只能放一个servlet?我做了一个使用,即在一个web.xml中写了好几个servlet,如下:
<web-app>
<servlet>
<servlet-name>Display</servlet-name>
<servlet-class>DisplayUserInput</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Display</servlet-name>
<url-pattern>/Display</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Counter00</servlet-name>
<servlet-class>Counter00</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Counter00</servlet-name>
<url-pattern>/Counter00</url-pattern>
</servlet-mapping> </web-app>
可是结果是只能访问Display这个servlet(Display是原来的Servlet,Counter00是后来加进去的,类我都已经放到classes下面了),这是怎么回事?
谢谢指教
上面那个实验弄错了,可以的,当时可能是部署的时候没有把以前的删除干净,所以出现了这样的问题
再次感谢大家!