session登录练习使用解决null显示问题

session登录练习使用解决null显示问题_第1张图片


*解决主页面用户名显示为null的问题:
 *         原因:因为在用户登录成功后使用重定向显示主页面,两次请求,而用户的信息在第一次请求中,第二次请求中没有户                           数据,所以显示为null

session登录练习使用解决null显示问题_第2张图片

session登录练习使用解决null显示问题_第3张图片

session登录练习使用解决null显示问题_第4张图片


当你关闭浏览器时,再次打开浏览器,输入http://localhost:8080/login/ck,会发现报空指针异常的错误

原因是在于登录页面有两个:一个是请求登录页面PageServlet.java,另外一个是三天免登录的页面CookieServlet.java

故需要把这个登录页面的用户信息都应该放在session对象中。

session登录练习使用解决null显示问题_第5张图片

session登录练习使用解决null显示问题_第6张图片

将会自动跳转到如下图:

session登录练习使用解决null显示问题_第7张图片


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 {
	@Override
	protected 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("");
		resp.getWriter().write("");
		resp.getWriter().write("");
		resp.getWriter().write("");
		resp.getWriter().write("

欢迎"+u.getUname()+"访问dym管理系统

"); resp.getWriter().write("
"); resp.getWriter().write("
"); resp.getWriter().write(""); resp.getWriter().write("
"); resp.getWriter().write(""); resp.getWriter().write(""); } }

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 {
	@Override
	protected 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("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("");
			resp.getWriter().write("
用户名"+u.getUname()+"
密码"+u.getPwd()+"
"); resp.getWriter().write(""); resp.getWriter().write(""); //直接响应 //请求转发 //重定向 } }

session登录练习使用解决null显示问题_第8张图片

session登录练习使用解决null显示问题_第9张图片

session登录练习使用解决null显示问题_第10张图片

session登录练习使用解决null显示问题_第11张图片

你可能感兴趣的:(JavaEE)