第一种 没有注解的 过滤web层的utf-8编码
package com.hxf.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
// 编写 过滤器第一步 实现Fillter接口
// 前端<meta charset="UTF-8"> 如果乱码 UTF-8要改成GBK
public class BianMaFilter implements javax.servlet.Filter {
// 以下是过滤器的生命周期
// 1 初始化方法
public void init(javax.servlet.FilterConfig config) throws javax.servlet.ServletException {
System.out.println("我是过滤器,我诞生了");
}
// 2 过滤的方法
public void doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse resp, javax.servlet.FilterChain chain) throws javax.servlet.ServletException, IOException {
System.out.println("过滤发生在我这里");
// 让http的req和resp 等于 javax.servlet.ServletRequest 的req和resp
// 如果写第一二行代码了就不用写第三行了
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;// 让json也变成utf-8
// 让json也变成utf-8
// response.setContentType("application/json;charset=utf-8");
// 过滤 编码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("utf-8");
chain.doFilter(req, resp);//chain 链条的意思 这段代码的 意思相当于 放行
}
// 3 销毁的方法
public void destroy() {
System.out.println("我是过滤器,我的任务完成了");
}
}
xml
<?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">
<filter>
<filter-name>BianMaFilter</filter-name>
<filter-class>com.hxf.Filter.BianMaFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>BianMaFilter</filter-name>
<!-- /*代表所有的连接 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
第二种 有注解 过滤后台管理登录界面
package com.hxf.Filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebFilter(filterName = "LoginFilter",value = {"/*"}) // 多个的话 要加大括号
public class LoginFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
// 让http的req和resp 等于 javax.servlet.ServletRequest 的req和resp
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
// 过滤编码
package com.hxf.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
// 编写 过滤器第一步 实现Fillter接口
// 前端<meta charset="UTF-8"> 如果乱码 UTF-8要改成GBK
public class BianMaFilter implements javax.servlet.Filter {
// 以下是过滤器的生命周期
// 1 初始化方法
public void init(javax.servlet.FilterConfig config) throws javax.servlet.ServletException {
System.out.println("我是过滤器,我诞生了");
}
// 2 过滤的方法
public void doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse resp, javax.servlet.FilterChain chain) throws javax.servlet.ServletException, IOException {
System.out.println("过滤发生在我这里");
// 让http的req和resp 等于 javax.servlet.ServletRequest 的req和resp
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
// 过滤 编码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("utf-8");
chain.doFilter(req, resp);//chain 链条的意思 这段代码的 意思相当于 放行
}
// 3 销毁的方法
public void destroy() {
System.out.println("我是过滤器,我的任务完成了");
}
}
// 注意session在登录浏览器的时候就有 只不过是默认的
// 谁在登陆成功时的session就过去 不成功session就拦截
HttpSession session = request.getSession();
// 以下 前面是实体类
// AdminUser adminUser = session.getAttribute("adminUser");//引号里写你session中的东西
// 特殊的。。。路径是前端page层转发的/admin/login 还有ajax的方法/admin/loginFun
// String requestURI = request.getRequestURI();//获取路径
// if (requestURI.equals('/admin/login')){
// chain.doFilter(req, resp);
// return;
// }
// 放行vue jquery bootstrap 和验证码
// if (requestURI.equals('/admin/loginFun') || requestURI.equals('/vue.js') ||requestURI.equals('/jquery.js')||requestURI.equals('/yanzhengma')||requestURI.equals('/bootstrap.js')){
// chain.doFilter(req, resp);
// return;
// }
//if (null == adminUser){
// // 没有存登录后这个用户的session
// // 不让他进去
// Map map = new HashMap();
// map.put("code",400);
// map.put("msg","您似乎没有登录,请登陆后再访问");
// String s = JSON.toJSONString(map);//需要json 的 jar包
// response.getWriter().print(s);
// }
chain.doFilter(req, resp);
}
public void init(FilterConfig config) throws ServletException {
}
}