在
filter中
直接在servlet上
@FilterServlet("")
想讲思路吧》
转载---------------》
FIlter https://www.cnblogs.com/oumyye/p/4273330.html
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201103075213198.png#pic_center
这个文件夹下放后端页面
拦截访问
这个文件夹下放后端的登录页面
如果想访问后台,需要登录,登录的变量存到houUser不与qianUser起冲突,
如果过session中有这个变量就放行,允许访问这个文件夹下的html
这样就不会前端登录,在后端也可以登录,两个的作用域不同是不能登录的。
前端用户表,后端用户表。
访问前端一些特定的页面在Servlet中检查qianUser Session
如果有就带参跳转页面,比如说,订单支付页面。
servlet的filter过滤器,可以过滤utf-8的格式
request.set
在这里插入代码片`
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
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;
@WebFilter("/前台html(或者jsp页面存放地址)")
public class OneServlet extends HttpServlet implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8"); // 设置utf-8格式
response.setContentType("text/html;charset=UTF-8");
// 如果前台用户登录会在 session中存储一个名字叫qianUser的属性名,属性值可以是用户的手机号码
// 当访问前台html(或者jsp页面),如果
HttpSession session=((HttpServletRequest)servletRequest).getSession(); // 因为HttpServlertRequest是HttpServlet的子类,session是HttpServlet当中的方法,所以向下转型。
String qianUser= (String) session.getAttribute("qianUser");
if(qianUser!=null){
filterChain.doFilter(servletRequest,servletResponse); // 如果不等于空,就代表已登录,可以访问
}
if(qianUser==null){
PrintWriter out=servletResponse.getWriter(); //创建一个输出流
//如果为空则通过javaScript脚本出输出提示并跳转到index.jsp页面
out.print("<script language=javascript>alert('您还没有登录!!!');window.location.href='../index.jsp';</script>");
}
}
}`
SpringMvc 的拦截器
就是在通过url地址栏的方法名进行拦截判断
拦截 htttp://localhost:8080/user/user1
比如说拦截/user
https://www.cnblogs.com/black-spike/p/7813238.html
转载-------》
SpringBoot拦截器
https://www.cnblogs.com/zktww/p/11550891.html