35、JAVA_WEB开发基础之过滤器
生活随笔
收集整理的這篇文章主要介紹了
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开发基础之过滤器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配额生是什么意思 配额生意思简述
- 下一篇: 新绝代双骄1攻略 新绝代双骄1操作快捷键