功能:
1.一个登陆页面,当用户输入账号密码后(该账号密码为已给条件,定死了的值),如果用户登陆正确则提示该用户登陆成功。
2.如果账号/密码错误,则在此次回到登录页面,且在登陆页面提示账号/密码错误。
3.如果用户直接访问登陆成功页面则提示:还未登录,并引导用户登录。
4.用户登录成功后需要显示:”‘用户的账号名’欢迎您”,且在后面添加退出登录按钮。
5.当用户点击退出登录按钮后需将用户退出。

Admin


提示:注解都在代码中,如有错误或不了解请评论或联系博主.

index.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2021/4/1
  Time: 11:19
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>用户登录页</title>
  </head>
  <body>
  <form action="/LoginServlet" method="post">
    用户名:<input type="text" name="username"/><br>
    密码:<input type="password" name="password"/><br>
    <input type="submit" value="登录">
    <br>
    <hr />
    <%
      //获取LoginServlet中32行error的值并赋值给变量"a".
    String a=(String) session.getAttribute("error");

    //实现消除主页面一直提示为"null"情况:
   //判断变量"a"返回值是否为空[如果为空则证明登陆成功,不为空则登陆失败].
     if (a!=null){ //如果不为空
       out.print(a); //输出变量"a"的值.
       }
     else{ //反之输出"",[即为空,什么都没有]
       out.print("");
     }
    %>
  </form>
  </body>
</html>

Welcome.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2021/4/1
  Time: 11:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
<%
    HttpSession session1=request.getSession();

    String username=(String) session1.getAttribute("username");
    if (username!=null){
        out.print(username+"欢迎您!<a href='/LogOutServlet'>退出登录</a>");
    }else{
        out.print("您还未登录!请返回<a href=http://localhost:8080>登录</a>");
    }
%>
</body>
</html>

LoginServlet

package Servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");//设置编码格式,否则输出为乱码或"???"
        PrintWriter out=response.getWriter();
        request.setCharacterEncoding("utf-8");
//        -----分割线-----
        //获取的值为<index.jsp>页面中提交的值的信息:
        //获取username的值并赋值给变量"username".
        String username=request.getParameter("username");
        //获取password的值并赋值给变量"password".
        String password=request.getParameter("password");
//        -----分割线-----
        //判断获取到的"username"和"password"是否等于"admin"和"123".
        if (username.equals("admin")&&password.equals("123")){
            //声明调用方法
            HttpSession session=request.getSession();
//            -----分割线-----
            //以username命名将username的值存入session域中.
            session.setAttribute("username",username);
            //重定向至"Welcome.jsp"页面
            response.sendRedirect("/Welcome.jsp");
        }
        else { //反之
            HttpSession session=request.getSession();
            //存入session域信息
            session.setAttribute("error","账号或密码错误,请重新输入!(っ °Д °;)っ  [该提示3秒后刷新消失]");
            //重写Cookie重新设置JSESSIONID的声明周期:
            //新建Cookie命名为"JSESSIONID"值为获取到的session的ID,并赋值给变量"a".
            Cookie c=new Cookie("JSESSIONID", session.getId());
            c.setPath(request.getContextPath());
            c.setMaxAge(3);//生存时间,以秒为单位.
            response.addCookie(c);//将变量"c"添加到浏览器请求头
            response.sendRedirect("http://localhost:8080");//重定向至URL:"http://localhost:8080"
        }
//        if (username!=null){
//            out.print(username+"欢迎您!<a href='/LogOutServlet'>退出登录</a>");
//        }else{
//            out.print("您还未登录!请返回<a href=http://localhost:8080/index.jsp>登录</a>");
//        }
    }
}

LogOutServlet

package Servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/LogOutServlet")
public class LogOutServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");//设置编码格式,否则输出为乱码或"???"
        PrintWriter out=response.getWriter();
        request.setCharacterEncoding("utf-8");
//        -----分割线-----
        HttpSession session=request.getSession();
        session.removeAttribute("username");//删除session域中存入的数据
        out.print("退出成功,即将返回登录页面!");
        response.setHeader("Refresh","3;URL=http://localhost:8080");

    }
}

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