用户登录2.0版本

1.用户登录后需要显示“‘用户名’+欢迎您!”
2.需具有”退出登录”,点击该文字即退出用户的登录,并返回登录页面。
3.若直接访问登陆成功页面,则引导用户登录后操作。
4.若用户登录失败则引导用户重新登陆

项目要求-Admin

NOTE:
1.首先需要由用户登录页面login.html
—作用:用于跳转到登录服务器做判断。
2.拥有一个判断用户登录输入账号密码是否正确的Servlet
—作用:判断密码是否正确,错误则返回至登录页重新登录。
3.用户登录后页面显示
—作用:如果用户登陆成功显示(“用户名”欢迎您!),且后方需要由“退出登录”,如果退出登录则抹除用户登录数据。
4.抹除数据服务器
—作用:抹除用户登录数据,退出成功则返回登录页

index.html

复制代码
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>用户登录页</title>
  6. </head>
  7. <body>
  8. //action="需要跳转到的地址"
  9. <form action="/LoginServlet" method="post">
  10. 用户名:<input type="text" name="username"/><br>
  11. 密码:<input type="password" name="password"/><br>
  12. <!--性别:<input type="radio" name="sex" value="男"/>男-->
  13. <!--<input type="radio" name="sex" value="女"/>女<br>-->
  14. <!--爱好:<input type="checkbox" name="hobby" value="学习"/>学习-->
  15. <!--<input type="checkbox" name="hobby" value="游戏"/>游戏-->
  16. <!--<input type="checkbox" name="hobby" value="看书"/>看书<br>-->
  17. <input type="submit" value="登录">
  18. //本代码套用之前的用户登录
  19. </form>
  20. </body>
  21. </html>

LoginServlet

复制代码
  1. //包名,指该代码(Servlet)在该包中
  2. package Servlet;
  3.  
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import javax.servlet.http.HttpSession;
  10. import java.io.IOException;
  11. import java.io.PrintWriter;
  12. //导包
  13. @WebServlet("/LoginServlet")//访问该Servlet的虚拟路径
  14. public class LoginServlet extends HttpServlet {
  15. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  16. response.setContentType("text/html;charset=utf-8");//设置编码格式,否则输出为乱码或"???"
  17. PrintWriter out=response.getWriter();
  18. //上面两行response和PrintWrite不再细说
  19. request.setCharacterEncoding("utf-8");//用来确保发往服务器的参数的编码格式,设置从request中取得的值或从数据库中取出的值。
  20. // ------分割线------
  21. String username=request.getParameter("username");
  22. String password=request.getParameter("password");
  23. //获取存入的username的值和password的值
  24. // -----分割线-----
  25. //判断账号是否为"admin"密码是否为"123"
  26. if(username.equals("admin")&&password.equals("123")){
  27. HttpSession session=request.getSession();
  28. //将username存入session域,后面会取出
  29. session.setAttribute("username",username);
  30. //如果判断正确则跳转到"/SuccessServlet"
  31. response.sendRedirect("/SuccessServlet");
  32. }
  33. //反之输出"您的密码输入有误,将在3秒后返回登录页面"
  34. //并在3秒后跳转到登录页"index.html"
  35. else {
  36. out.print("您的密码输入有误,将在3秒后返回登录页面");
  37. response.setHeader("Refresh","3;URL=http://localhost:8080/index.html");
  38. }
  39. }
  40.  
  41. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  42. doPost(request, response);
  43. }
  44. }
  45.  

SuccessServlet

复制代码
  1. package Servlet;
  2.  
  3. import javax.servlet.ServletException;
  4. import javax.servlet.annotation.WebServlet;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import javax.servlet.http.HttpSession;
  9. import java.io.IOException;
  10. import java.io.PrintWriter;
  11.  
  12. @WebServlet("/SuccessServlet")
  13. public class SuccessServlet extends HttpServlet {
  14. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  15. response.setContentType("text/html;charset=utf-8");//设置编码格式,否则输出为乱码或"???"
  16. PrintWriter out=response.getWriter();
  17. request.setCharacterEncoding("utf-8");
  18. // ------分割线------
  19. HttpSession session=request.getSession();
  20. //取出session域中的值"username"
  21. String username=(String) session.getAttribute("username");
  22. //如果username不为空值,则显示欢迎
  23. if (username!=null){
  24. out.print(username+"欢迎您!<a href='/LogOutServlet'>退出登录</a>");
  25. }else{
  26. //否则提示未登录,引导用户登录
  27. out.print("您还未登录!请返回<a href=http://localhost:8080/index.html>登录</a>");
  28. }
  29.  
  30. // out.print("请先返回登录!<a href=http://localhost:8080/index.html>点击此处跳转</a>");
  31. }
  32.  
  33. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  34. doPost(request, response);
  35. }
  36. }
  37.  

LogOutServlet

复制代码
  1. package Servlet;
  2.  
  3. import javax.servlet.ServletException;
  4. import javax.servlet.annotation.WebServlet;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import javax.servlet.http.HttpSession;
  9. import java.io.IOException;
  10. import java.io.PrintWriter;
  11.  
  12. @WebServlet("/LogOutServlet")
  13. public class LogOutServlet extends HttpServlet {
  14. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  15. doGet(request, response);
  16. }
  17.  
  18. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  19. response.setContentType("text/html;charset=utf-8");//设置编码格式,否则输出为乱码或"???"
  20. PrintWriter out=response.getWriter();
  21. request.setCharacterEncoding("utf-8");
  22. // -----分割线-----
  23. HttpSession session=request.getSession();
  24. //清除(删除、抹除)"username"的数据,且在3秒后跳转至登陆页面
  25. session.removeAttribute("username");
  26. out.print("退出成功,即将返回登录页面!");
  27. response.setHeader("Refresh","3;URL=http://localhost:8080/index.html");
  28.  
  29. }
  30. }
  31.  

蓝奏云盘下载 | 闪电盘下载