Java web登录与注销

登录实现

项目搭建

1.搭建Dynamic Web Project项目,默认创建Web.XML文件
Java web登录与注销_第1张图片
2.编写login界面
login.html




3.编写center界面
center.html

	

欢迎来到,个人中心!

4.后端逻辑业务梳理
Java web登录与注销_第2张图片
5.编写loginServlet

@WebServlet(name = "loginServlet", urlPatterns = { "/login" })
public class LoginServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
		req.getRequestDispatcher("/login.html").forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// 中文乱码处理
		// req.setCharacterEncoding(StringUtil.ENCODING); req不支持次设置,若设置会报错
		resp.setContentType(StringUtil.ENCODING);

		// 获取表单的属性值
		String username = req.getParameter("username");
		String password = req.getParameter("password");

		// 根据信息判断登录与否
		if (StringUtil.isEmpty(username) || StringUtil.isEmpty(password)) {// 账号与密码为空
			req.getRequestDispatcher("/login.html").forward(req, resp);
		} else {

			// 保存至User实体类的实例
			User user = new User();
			user.setPassword(password);
			user.setUsername(username);

			// 保存到session中
			req.getSession().setAttribute("user", user);

			// TODO 根据输入的账号密码与数据库中的信息进行匹配,本次就默认匹配成功

			// 重定向到个人中心界面
			resp.sendRedirect("/test/center");
		}
	}

}

6.编写centerServlet

@WebServlet(name = "centerServlet", urlPatterns = { "/center" })
public class CenterSerlvet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		resp.setContentType(StringUtil.ENCODING);

		// 判断是否登录了
		HttpSession httpSession = req.getSession();
		User user = (User) httpSession.getAttribute("user");
		
		if (user == null) {
			req.getRequestDispatcher("/login").forward(req, resp);
		}
		System.out.println(req.getSession());
		System.out.println(user);
		// 已登录,重定向到center界面
		req.getRequestDispatcher("/WEB-INF/center.html").forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		// 注销
		req.getSession().invalidate();

		resp.sendRedirect("/test/login.html");
	}
}

7.我的工具类StringUtil

public class StringUtil {
	
	//字符编码
	public static final String ENCODING = "text/html;charset=utf-8";
	
	//判断参数为空
	public static boolean isEmpty(String param) {
		return param == null || "".equals(param.trim());
	}

}

8.我的项目结构
学习阶段就用eclipse,以后会主用idea,因为真的好用。
Java web登录与注销_第3张图片

  1. 项目描述
  2. jar包目录,java代码存放处
  3. build存放的是编译的文件
  4. WebContent发布项目的目录
  5. WEB-INF:受保护资源,可通过转发访问其下的资源,重定向不行。
  6. web.xml:项目配置信息

你可能感兴趣的:(JavaSE基础,java)