全 HTML 的登录退出系统
一、创建步骤
二、核心代码
①index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<h1>欢迎<span id="user"></span>登录!</h1>
<a href="logout">退出登录</a>
<script>
$.post("userInfo",{},function (response) {
$("#user").html(response)
})
</script>
</body>
</html>
②login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录页面</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<form>
<input name="name" , id="name">
<input name="password" , id="password">
<br>
<br>
<input type="button" value="登录" onclick="s()">
<p style="color: red" id="message"></p>
</form>
<script>
function s() {
let name = $("#name").val();
let password = $("#password").val();
$.post("login", {name, password}, function (response) {
if (response.trim() == '登录成功') {
location.href = "index.html";
} else {
$("#message").html(response);
}
})
}
</script>
</body>
</html>
③LoginServlet
package com.allen.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 java.io.IOException;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String password = request.getParameter("password");
if ("admin".equals(name) && "123456".equals(password)) {
request.getSession().setAttribute("userInfo",name);
response.getWriter().println("登录成功");
}else{
response.getWriter().println("账号或密码错误!!!");
}
}
}
④LogoutServlet
package com.allen.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 java.io.IOException;
@WebServlet("/logout")
public class LogoutServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getSession().invalidate();
response.sendRedirect("login.html");
}
}
⑤UserInfoServlet
package com.allen.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 java.io.IOException;
@WebServlet("/userInfo")
public class UserInfoServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.getWriter().println(request.getSession().getAttribute("userInfo"));
}
}
⑥LoginFilter
package com.allen.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebFilter("/*")
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request= (HttpServletRequest) servletRequest;
HttpServletResponse response= (HttpServletResponse) servletResponse;
if (request.getRequestURI().contains("login")) {
filterChain.doFilter(request,response);
return;
}
if (request.getSession().getAttribute("userInfo")!=null) {
filterChain.doFilter(request,response);
return;
}
response.sendRedirect("login.html");
}
@Override
public void destroy() {
}
}
三、系统测试结果
①密码错误登录结果截图
②账号密码输入正确测试结果