1.模拟登录
- 目录图片
- indexServlet代码
package com.dl.code; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @公司 DL19121630工作室 * @作者 代先生 * @日期 2021/1/9 -- 10:16 * @微信 D19121630L * @温馨提示:原创代码,翻版必究!如需代写,微信联系! */ @WebServlet("/indexServlet") public class IndexServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //如果用户直接访问IndexServlet //先判断用户是否登录过,也就是判断cookie和session中是否有对应的值存在 //获取cookie Cookie[] cookies = req.getCookies(); String name = null; String password = null; //查找,键为name的cookie if (cookies!=null){ for (Cookie cookie : cookies) { if(cookie.getName().equals("name")){ //存入用户名 name=cookie.getValue(); } if (cookie.getName().equals("password")){ //存入密码 password=cookie.getValue(); } } } //判断 name 和 password 是否为空,如果为空,则表明,没有成功登录过,则不允许自动登录 if (name !=null && password !=null){ //自动登录,跳转道主页面 resp.sendRedirect("index-index.html"); }else { resp.sendRedirect("login.html"); } } }
- LoginServlet代码
package com.dl.code; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import java.io.IOException; /** * @公司 DL19121630工作室 * @作者 代先生 * @日期 2021/1/9 -- 10:16 * @微信 D19121630L * @温馨提示:原创代码,翻版必究!如需代写,微信联系! */ @WebServlet("/loginServlet") public class LoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //登录的相关操作 //设置请求编码 req.setCharacterEncoding("utf-8"); //获取用户输入的用户名和密码 String userName = req.getParameter("userName"); String password = req.getParameter("password"); //判断账户是否存在,以及密码是否正确 -- 这里只进行模拟操作 //模拟设置:账户名为:dl19121630 密码:123456789 if (userName.equals("dl19121630")){ //账户存在 if (password.equals("123456789")){ //密码正确 //将账户名存入到cookie中 Cookie name = new Cookie("name",userName); //将密码存入到cookie中 Cookie pwd = new Cookie("password", password); //设置cookie的有效期限,这里设置成一个小时 name.setMaxAge(60*60); pwd.setMaxAge(60*60); //将cookie发送到浏览器 resp.addCookie(pwd); resp.addCookie(name); //将用户的密码保存到session中 //获取一个session HttpSession session = req.getSession(); //将密码存入到session中 session.setAttribute("password",password); //设置session的有效期 session.setMaxInactiveInterval(60*60); //转发到主页面 resp.sendRedirect("index-index.html"); return; } } resp.sendRedirect("error.html"); } }
- LogoutServlet代码
package com.dl.code; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import java.io.IOException; /** * @公司 DL19121630工作室 * @作者 代先生 * @日期 2021/1/9 -- 10:19 * @微信 D19121630L * @温馨提示:原创代码,翻版必究!如需代写,微信联系! */ @WebServlet("/logoutServlet") public class LogoutServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //退出登录的操作 //第一步:消除 cookie和session Cookie[] cookies = req.getCookies(); for (Cookie cookie : cookies) { if(cookie.getName().equals("name")){ cookie.setMaxAge(0); resp.addCookie(cookie); } if (cookie.getName().equals("password")){ cookie.setMaxAge(0); resp.addCookie(cookie); } } HttpSession session = req.getSession(false); System.out.println(session); if (session != null){ session.invalidate(); } //跳转到登录页面 resp.sendRedirect("login.html"); } }