当前位置:
首页 >
session登录练习使用解决null显示问题
发布时间:2025/4/16
39
豆豆
生活随笔
收集整理的这篇文章主要介绍了
session登录练习使用解决null显示问题
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
*解决主页面用户名显示为null的问题:
* 原因:因为在用户登录成功后使用重定向显示主页面,两次请求,而用户的信息在第一次请求中,第二次请求中没有户 数据,所以显示为null
当你关闭浏览器时,再次打开浏览器,输入http://localhost:8080/login/ck,会发现报空指针异常的错误
原因是在于登录页面有两个:一个是请求登录页面PageServlet.java,另外一个是三天免登录的页面CookieServlet.java
故需要把这个登录页面的用户信息都应该放在session对象中。
将会自动跳转到如下图:
MainServlet.java
package com.dym.servlet;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import com.dym.pojo.User;public class MainServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//设置请求编码格式req.setCharacterEncoding("utf-8");//设置响应编码格式resp.setContentType("text/html;charset=utf-8");//获取请求信息//获取session中的数据User u=(User)req.getSession().getAttribute("user");//处理请求信息//响应处理结果resp.getWriter().write("<html>");resp.getWriter().write("<head>");resp.getWriter().write("</head>");resp.getWriter().write("<body>");resp.getWriter().write("<h3>欢迎"+u.getUname()+"访问dym管理系统</h3>");resp.getWriter().write("<hr>");resp.getWriter().write("<form action='show' method='get'>");resp.getWriter().write("<input type='submit' value='查看个人信息'>");resp.getWriter().write("</form>");resp.getWriter().write("</body>");resp.getWriter().write("</html>");} }ShowServlet.java
package com.dym.servlet;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import com.dym.pojo.User;public class ShowServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//设置请求编码格式req.setCharacterEncoding("utf-8");//设置响应编码格式resp.setContentType("text/html;charset=utf-8");//获取请求信息HttpSession hs=req.getSession();if(hs.getAttribute("user")==null){resp.sendRedirect("/login/ck");return;}User u=(User)hs.getAttribute("user");//处理请求信息//响应处理结果resp.getWriter().write("<html>");resp.getWriter().write("<head>");resp.getWriter().write("</head>");resp.getWriter().write("<body>");resp.getWriter().write("<table border='1px'>");resp.getWriter().write("<tr>");resp.getWriter().write("<td>用户名</td>");resp.getWriter().write("<td>"+u.getUname()+"</td>");resp.getWriter().write("</tr>");resp.getWriter().write("<tr>");resp.getWriter().write("<td>密码</td>");resp.getWriter().write("<td>"+u.getPwd()+"</td>");resp.getWriter().write("</tr>");resp.getWriter().write("</table>");resp.getWriter().write("</body>");resp.getWriter().write("</html>");//直接响应//请求转发//重定向} }总结
以上是生活随笔为你收集整理的session登录练习使用解决null显示问题的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Session——servlet
- 下一篇: myeclipse怎么如何激活