大数据必学Java基础(一百一十一):过滤器注解应用和开发案例
2023-06-13 09:16:09 时间
过滤器注解应用和开发案例
一、过滤器注解应用
@WebFilter属性
package com.lanson.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import java.io.IOException;
/**
* @Author: Lansonli
* @Description: MircoMessage:Mark_7001
*/
@WebFilter(urlPatterns = "/myServlet1.do")
public class Filter0_MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("MyFilter0 在过滤请求 ");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("MyFilter0 在过滤响应");
}
@Override
public void destroy() {
}
}
package com.lanson.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import java.io.IOException;
import java.util.Enumeration;
/**
* @Author: Lansonli
* @Description: MircoMessage:Mark_7001
*/
@WebFilter(urlPatterns = "/myServlet1.do",initParams = {@WebInitParam(name="realname",value ="zhangsan"),@WebInitParam(name="charset",value ="utf-8")})
public class Filter1_MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 获取初始化的一些参数
String realname = filterConfig.getInitParameter("realname");
System.out.println("realname:"+realname);
Enumeration<String> pNames = filterConfig.getInitParameterNames();
while(pNames.hasMoreElements()){
String pName = pNames.nextElement();
System.out.println(pName+":"+filterConfig.getInitParameter(pName));
}
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("MyFilter1 在过滤请求 ");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("MyFilter1 在过滤响应");
}
@Override
public void destroy() {
}
}
二、开发案例
1、准备页面login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title%sSourceCode%lt;/title>
</head>
<body>
please login ... ... <br/>
<form action="loginController.do" method="post">
用户名:<input type="text" name="user"> <br/>
密码:<input type="password" name="pwd"><br/>
<input type="submit" value="提交">
</form>
</body>
</html>
2、准备servlet,LoginController
package com.lanson.controller;
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;
/**
* @Author: Lansonli
* @Description: MircoMessage:Mark_7001
*/
@WebServlet(urlPatterns = "/loginController.do")
public class LoginController extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取用户名和密码
String user = req.getParameter("user");
String pwd = req.getParameter("pwd");
System.out.println(user);
System.out.println(pwd);
}
}
3、准备过滤器
package com.lanson.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
/**
* @Author: Lansonli
* @Description: MircoMessage:Mark_7001
*/
public class Filter0_EncodingFilter implements Filter {
private String charset;
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding(charset);
// 放行
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
charset = filterConfig.getInitParameter("charset");
}
@Override
public void destroy() {
}
}
4、配置过滤器
<?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>encodingFilter</filter-name>
<filter-class>com.lanson.filter.Filter0_EncodingFilter</filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
</web-app>
相关文章
- JAVA多线程面试题_java多线程的实现方式
- java反射菜鸟教程_Java反射
- java jce_了解Java JCE的加密
- c++和java哪个好学_c++语言和Java语言,初学者该如何选择?「建议收藏」
- Java web实现video播放
- eclipse创建一个java项目目录_Eclipse创建JAVA项目
- java quartz_job.xml_java 使用quartz 定时xml 配置 与注解 以及注意事项
- java uuid 随机数_Java随机数和UUID[通俗易懂]
- 【说站】java重复注解如何实现
- 微信开发SDK java版,支持maven;微信Java开发工具包,支持包括微信支付、开放平台、公众号、企业微信/企业号、小程序等微信功能模块的后端开发。
- 校园论坛(Java)—— 数据报表模块
- java自动识别用户上传的文本文件编码详解编程语言
- java 检测 Java 是否运行在64bit 的JVM上详解编程语言
- Java实现一个简单 HTTP 服务器的代码详解编程语言
- Java学习笔记之六java三种循环(for,while,do……while)的使用方法及区别详解编程语言
- 程序Linux下构建Java应用:从入门到精通(linux下开发java)
- 数据库Java实现Oracle数据库监控(java监听oracle)
- 解锁Java 与 Oracle 的连接之门(java连接oracle)
- 服务器快速搭建Linux Java服务器,实现互联网应用(linux搭建java)
- 实战探索:Java中使用Redis缓存(java的redis案例)
- Java 关闭 Redis 连接的指南(java关闭redis)
- 连接MySQL连接技术之Java实现(java的mysql)
- Java如何启动MySQL?(java启动mysql)
- 构建基于Java和Oracle的强大技术栈(java架构oracle)
- 在Java中利用Oracle数据库进行应用开发(java中oracle)
- java数组遍历删除remove(示例代码)
- java网络编程中向指定URL发送GETPOST请求示例
- Java中的this指针使用方法分享