*解决主页面用户名显示为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显示问题相关推荐

  1. 内嵌iframe_内嵌页面session超时,内嵌页面显示登录界面问题解决方案

    内嵌页面session超时,内嵌页面显示登录界面问题解决方案 我们在开发web项目的时候 经常用到iframe嵌套,这里的话 不管是开发的时候,还是正式环境使用.当session超时,或者重启项目,内 ...

  2. sso单点登录系统(解决session共享)

    场景:假设一个用户将自己的登录信息提交到后台,如果session保存的信息分布在多台机器上,并且不共享,那么可能导致用户的登录信息出现短暂的丢失,为什么这样讲,因为用户访问服务器中间还要经过负载均衡服 ...

  3. 解决登录页验证码不能正常显示问题

    解决登录页验证码不能正常显示问题 参考文章: (1)解决登录页验证码不能正常显示问题 (2)https://www.cnblogs.com/zhuzq/p/9564423.html 备忘一下.

  4. qq游戏不显示登陆服务器,win7系统登录qq游戏大厅不显示画面怎么解决

    很多用户都喜欢在电脑中登录qq游戏大厅来玩各种qq游戏,但是有不少win7系统用户在登录qq游戏大厅的时候却不显示画面,遇到这样的问题该怎么办呢,接下来给大家讲解一下win7系统登录qq游戏大厅不显示 ...

  5. 梦幻西游三维版显示服务器未开启,梦幻西游三维版登录不进去怎么办-梦幻西游三维版登录不进去解决办法介绍_斗蟹游戏网...

    [斗蟹攻略]梦幻西游三维版登录不进去怎么办?有很多小伙伴们都不知道,那么下面就由斗蟹小编为大家带来梦幻西游三维版登录不进去解决办法介绍,希望能够帮助到大家. 梦幻西游三维版登录不进去解决办法介绍 提示 ...

  6. 计算机登录界面没有用户显示不出来,电脑开机时提示用户界面失败:无法加载登录用户界面的解决方法...

    在电脑开机之后,弹出了错误的提示"用户界面失败:无法加载登录用户界面"无法加载某个DLL文件,导致了电脑无法正常开机,不知道如何解决,下面装机之家分享一下电脑开机时提示用户界面失败 ...

  7. 迅雷显示服务器超时,迅雷登录不了出现登录超时怎么办_迅雷登录超时的解决步骤...

    迅雷想必大家都非常熟悉吧,我们在下载一些软件的时候,经常会用到迅雷,不过在使用过程中偶尔也会遇到一些问题困扰着用户们,比如有用户在登录迅雷的时候,发现登录不了,出现登录超时的情况,这可该如何处理呢?本 ...

  8. html session 登录页面跳转页面跳转页面,session失效后跳转到登陆页面

    一.编写Filter拦截器类 package com.pv.utils; import java.io.IOException; import java.io.PrintWriter; import ...

  9. 计算机调试致sa登录失败,无法打开登录 'xxxx' 中请求的数据库。登录失败。用户 'sa' 登录失败。解决思路...

    当前位置:我的异常网» Sql Server » 无法打开登录 'xxxx' 中请求的数据库.登录失败.用 无法打开登录 'xxxx' 中请求的数据库.登录失败.用户 'sa' 登录失败.解决思路 w ...

最新文章

  1. 乾勤科技-智能车竞赛培训计划
  2. ajax 请求超过了5s 还没有返回 的话 就自动取消
  3. 第11章 支撑向量机SVM
  4. C指针原理(36)-C快速入门
  5. P6810 「MCOI-02」Convex Hull 凸包
  6. QT Windows下生成动态链接库
  7. 使用Roslyn将代码编译成单独的网络模块并将它们组装成动态库
  8. 基于R实现统计中的检验方法---卡方检验
  9. python跳出if_python跳出if
  10. Windows 2008下Exchange Server部署攻略
  11. JRebel-JVMTI [ERROR] You’re using an incompatible ‘jrebel.jar’ with the JRebel Agent.【完美解决方案】
  12. was升级jdk版本_was升级jdk1.7
  13. 智慧能源管控系统在钢铁企业的设计与应用
  14. Android 项目正式签名打包教程
  15. 数据库原理与应用——课程介绍及数据库系统概论(上)
  16. 基于惯性和偏心的描述符矩(Moment of inertia and eccentricity based descriptors)
  17. 计算机无法安装64位操作系统,细说64位电脑怎么安装32位系统
  18. CSDN 上传资源已经存在
  19. aspx页面返回的response
  20. Nginx+Lua+Redis实现广告缓存

热门文章

  1. 【node】------mongoose的基本使用------【巷子】
  2. 关于grep的引号使用问题
  3. phantomjs介绍
  4. 防止MDI子窗体多次实例化的代码
  5. 企业研发人员配备比例_日本电产电动汽车马达研发基地落户大连
  6. 10.4-全栈Java笔记:常用流详解(二)
  7. hdu 1263 水果
  8. Js获取下拉框选定项的值和文本
  9. 编码过程中的问题总结
  10. Kinect2.0学习笔记