当前位置:网站首页>Complete web login process through filter
Complete web login process through filter
2022-07-06 10:19:00 【Artificial intelligence cockroach】
Complete web login process through filter
frame
Only users who get tickets can log in successfully , Tickets will be confiscated upon cancellation
Filter
effect :
Deal with Chinese code
validate logon ….
Add to server and servlet Between , Used to filter requests and responses ;
Guide pack
Specific code
The login page index.jsp
<html>
<body>
<h2> The login page </h2>
<div style="text-align:center">
<%--${pageContext.request.contextPath} Represents the current project web route --%>
<%--method="post" Set request method --%>
<form action="${pageContext.request.contextPath}/login" method="post">
<%@ page pageEncoding="utf-8"%>
user name :<input type="text" name="username"> <br>
password :<input type="password" name="password"><br>
<input type="submit">
</form>
</div>
</body>
</html>
error.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title> error </title>
</head>
<body>
<h2> The user name does not exist or the password is wrong !</h2>
<a href="/s1/index.jsp"> Return to login page </a>
</body>
</html>
success.jsp
success.jsp Put it in web/sys/
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title> A page </title>
</head>
<body>
<h1> Home page </h1>
<h2 Login successful style="text-align:center"></h2>
<%-- Set button --%>
<a href="../logout"> Cancellation account </a>
</body>
</html>
Sign in Servlet Login
package com.tl.login;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** * @author tl * Realize page login function : Only by entering the correct password can you login successfully and get tickets , * Otherwise, redirect to error.jsp page */
public class Login extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username=req.getParameter("username");
String password=req.getParameter("password");
if(username.equals("admin")&&password.equals("123456")){
req.getSession().setAttribute(Constant.name,req.getSession().getId());
resp.sendRedirect("/s1/sys/success.jsp");
}
else {
resp.sendRedirect("/s1/error.jsp");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
filter LoginFilter
package com.tl.login;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** * @author tl * filter Filter requests that don't get tickets , Respond to them on the login page */
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest) request;
HttpServletResponse resp=(HttpServletResponse) response;
if(req.getSession().getAttribute(Constant.name)==null){
resp.sendRedirect("/s1/index.jsp");
}
// Current
chain.doFilter(request,response);
}
@Override
public void destroy() {
}
}
Cancellation Logout
package com.tl.login;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** * @author tl * After the login page, you can log out Call this class when logging out * Confiscate the user's ticket */
public class Logout extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if(req.getSession().getAttribute(Constant.name)!=null){
// Confiscate tickets
req.getSession().removeAttribute(Constant.name);
resp.sendRedirect("/s1/index.jsp");
}
else{
resp.sendRedirect("/s1/index.jsp");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
Constant class Constant
package com.tl.login;
/** * @author tl * Define constants here */
public class Constant {
static String name="USER_NAME";
}
register web.xml
Filter through filter /s1/sys/* Web page request and response
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="true">
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.tl.login.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Logout</servlet-name>
<servlet-class>com.tl.login.Logout</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Logout</servlet-name>
<url-pattern>/logout</url-pattern>
</servlet-mapping>
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.tl.login.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/sys/*</url-pattern>
</filter-mapping>
</web-app>
边栏推荐
- MySQL ERROR 1040: Too many connections
- Good blog good material record link
- CDC: the outbreak of Listeria monocytogenes in the United States is related to ice cream products
- flask运维脚本(长时间运行)
- Vscode common instructions
- 16 medical registration system_ [order by appointment]
- MySQL实战优化高手09 生产经验:如何为生产环境中的数据库部署监控系统?
- docker MySQL解决时区问题
- Upload vulnerability
- Several silly built-in functions about relative path / absolute path operation in CAPL script
猜你喜欢
Write your own CPU Chapter 10 - learning notes
Cmooc Internet + education
docker MySQL解决时区问题
MySQL combat optimization expert 04 uses the execution process of update statements in the InnoDB storage engine to talk about what binlog is?
Target detection -- yolov2 paper intensive reading
Docker MySQL solves time zone problems
CANoe下载地址以及CAN Demo 16的下载与激活,并附录所有CANoe软件版本
MySQL real battle optimization expert 11 starts with the addition, deletion and modification of data. Review the status of buffer pool in the database
Super detailed steps for pushing wechat official account H5 messages
颜值爆表,推荐两款JSON可视化工具,配合Swagger使用真香
随机推荐
Tianmu MVC audit I
14 医疗挂号系统_【阿里云OSS、用户认证与就诊人】
If someone asks you about the consistency of database cache, send this article directly to him
MySQL combat optimization expert 06 production experience: how does the production environment database of Internet companies conduct performance testing?
通过bat脚本配置系统环境变量
MySQL combat optimization expert 07 production experience: how to conduct 360 degree dead angle pressure test on the database in the production environment?
What is the current situation of the game industry in the Internet world?
MySQL combat optimization expert 05 production experience: how to plan the database machine configuration in the real production environment?
[flask] crud addition and query operation of data
MySQL ERROR 1040: Too many connections
oracle sys_ Context() function
[NLP] bert4vec: a sentence vector generation tool based on pre training
Competition vscode Configuration Guide
使用OVF Tool工具从Esxi 6.7中导出虚拟机
CAPL script pair High level operation of INI configuration file
Sed text processing
MySQL实战优化高手08 生产经验:在数据库的压测过程中,如何360度无死角观察机器性能?
MySQL实战优化高手03 用一次数据更新流程,初步了解InnoDB存储引擎的架构设计
Solve the problem of remote connection to MySQL under Linux in Windows
MySQL real battle optimization expert 11 starts with the addition, deletion and modification of data. Review the status of buffer pool in the database