35、JAVA_WEB开发基础之过滤器
是什么
过滤器javaweb的一个重要组件,一种规范,可以对发送到serlvet的请求进行拦截和响应进行过滤。实际开发中可以使用过滤器来对访问服务器的请求进行过滤,以提高安全性
过滤器的原理
可以配置过滤器对指定的请求进行过滤,就相当于在服务器和客户端之间增加了一层过滤膜,对一些请求必须经过过滤膜的过滤才能到达服务器,在过滤的过程中,可以对请求信息进行操作,其基本原理如图,及其简单:
JAVA_WEB中实现过滤器
在java web开发中如果想创建一个过滤器及其简单,每一个实现了Filter接口的java类都是一个过滤器,不过不能直接使用,需要在web项目的核心配置文件web.xml中进行配置以使得过滤器可以生效,可用于拦截请求和相应,实现步骤如下:
1、创建一个java类,实现Filter接口
package servlet_app;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class MyFilter implements Filter{private String encoding;/*** 初始化方法*/@Overridepublic void init(FilterConfig filterConfig) throws ServletException {//获取其初始化资源encoding = filterConfig.getInitParameter("encoding");}/*** 过滤请求和相应*/@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletRequest httpServletRequest = (HttpServletRequest)request;//设置编码方式httpServletRequest.setCharacterEncoding(encoding);HttpServletResponse httpServletResponse = (HttpServletResponse)response;//这个地方表示如果还有其他过滤器则继续下一层过滤chain.doFilter(httpServletRequest, httpServletResponse);}/*** 销毁方法*/@Overridepublic void destroy() {}}
2、在web.xml文件中配置并映射对应过滤器
<!-- 默认一个编码方式 --><context-param><param-name>encoding</param-name><param-value>utf-8</param-value></context-param><!-- 注册filter -->
<filter><filter-name>myFilter</filter-name><filter-class>servlet_app.MyFilter</filter-class>
</filter>
<!-- 映射filter -->
<filter-mapping><filter-name>myFilter</filter-name><!--要拦截的资源--><url-pattern>/userContrller</url-pattern>
</filter-mapping>
这样就创建了一个过滤器,其作用是对访问/userContrller.路径的请求进行过滤和处理其编码方式
这就是过滤器的基本介绍
35、JAVA_WEB开发基础之过滤器相关推荐
- 36、JAVA_WEB开发基础之监听器
是什么 顾名思义就是监听器就是监听器,在开发中指的是一种机制,通过这种机制可以对应用中组件的创建.销毁.更改等动作进行监视,根据具体监听信息作出相应的处理 工作原理 就是预先给组件添加一个事件,当这个 ...
- 30、JAVA_WEB开发基础之servlet(1)
servlet是什么 Servlet 是一种独立的 web 开发标准,用来接受.处理.返回浏览器的访问请求,它不应和服务器耦合在一起,servlet和servlet容器之间相互独立又相互依存,自我感觉 ...
- 31、JAVA_WEB开发基础之servlet(2)
使用servlet需要依赖jar包:servlet-api.jar,下边介绍一下关于servlet的一些api Servlet接口 package javax.servlet;import java. ...
- 39、JAVA_WEB开发基础之ajax和json
ajax是什么 首先要知道ajax并不是一种新的技术,而是几种技术的强强联合,全称是Asynchronous Javascript and xml,其精髓在于异步加载资源,因此可以实现局部加载效果(因 ...
- 38、JAVA_WEB开发基础之下载功能
是什么 下载指的是将服务器端的文件保存到客户端的磁盘中 基本实现原理 根据对应的要下载的文件在服务器端找到对应的文件,然后获取到文件流对象,将流对象发送到客户端,然后客户端通过对返回结果中文件流的解析 ...
- 37、JAVA_WEB开发基础之上传功能
是什么 上传指的是将客户端的文件保存到服务器的磁盘中 基本实现原理 读取客户端的文件信息,将文件信息以流的形式发送到服务器,然后服务器将流中的信息保存到本地,以实现文件的上传 实例 注意:提交的表单类 ...
- 34、JAVA_WEB开发基础之EL表达式和标签
EL表达式是什么 一种从域对象中获取数值的简化写法,el表达式语法格式为:${域对象.参数名} 使用方式 取出request范围内的参数:{pageContext.request.username} ...
- 33、JAVA_WEB开发基础之会话机制
会话是什么 一个客户端浏览器与web服务器之间连续发生的一系列请求和响应过程就是会话,这些过程中产生的一系列信息就是会话信息,会话机制就是用于维护这些信息一致性的一种技术.通俗的说就是,一个A账号访问 ...
- 32、JAVA_WEB开发基础之jsp
是什么 是简化servlet的一种技术,将html语句和java代码混合在一个文件中进行编写,只对网页中动态产生的内容用java代码编写,静 态内容仍用html语句编写 运行原理 jsp本质上是一个s ...
最新文章
- CSS中浮动布局float(小米布局案例、导航栏案例、overflow)
- 人工智能工程师学习路线及具备的5项基本技能
- JavaScript类型判断
- linux删掉文件怎么恢复,linux系统误删除文件怎么恢复
- 工程制图 (组合体的视图与尺寸注法)
- java 解压到内存,Java GZip 基于内存实现压缩和解压的方法
- javamailsender注入失败_springboot拦截异常信息发送邮件提醒
- Android 实现 欢迎界面 自动跳转 到 主界面
- cocos2d-x 移动MM平台SDK接入
- Floyd最短路径算法(来自微信公众号“算法爱好者”改编)
- ubuntu 18.04下解决网易云音乐打不开的问题
- html5-canvas常用的api介绍
- 学习笔记(3):海量数据的交互式分析工具-Dremel
- MWeb for Mac 3.2.0 专业级的markdown编辑器
- CString 彻底解析
- OSGEarth解决南北极空洞问题
- 参会记录|2022 人工智能安全学术研讨会参会总结
- 软件界面交互设计体验
- 龙套生涯:《鬼马双星》——许冠杰大战洪金宝
- ninja 编译系统
热门文章
- mac 上mysql怎么卸载不了_mac的mysql怎么卸载?
- dataset的去重计数 g2_ExcelExcel去重、计数一步到位,这个方法简单到哭
- 鼠标右键 移动选定的文件夹到指定位置_iRightMouse:一款免费Mac鼠标右键增强神器...
- org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the
- 7-8 最优服务次序问题 (10 分)
- [C++11]独占的智能指针unique_ptr的初始化和使用
- 递归函数中局部变量和全局变量
- mysql 磁盘i o 优化_经典案例:磁盘I/O巨高排查全过程
- python schedule运行了一遍说没有任务_python-schedule模块(定时任务)基于官方文档总结...
- python实现辗转相除法求最大公约数和最小公倍数