jsp字元攔截器__jdbc

來源:互聯網
上載者:User

很多在學習jsp的時候遇到亂碼的問題吧,解決方案其實很簡單,自訂一個字元攔截器即可。

為了不耦合在業務代碼中,我們應該將字元轉碼獨立出來,做成一個字元攔截器

直接上代碼:

package com.jdbc.filter;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 CharacterFilter implements Filter {private FilterConfig config;public void doFilter(ServletRequest req, ServletResponse resp,FilterChain chain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) resp;// 從web.xml檔案中擷取encoding對應的init-param中的param-valueString encoding = config.getInitParameter("encoding");// 只要定義了變數;就要判斷是否為空白;不然會報null 指標異常if (encoding != null) {// 指明內容請求格式的字元編碼集response.setContentType("text/html ;charset=" + encoding);// 請求時規範字元編碼格式request.setCharacterEncoding(encoding);// 指明輸出的格式字元編碼集response.setCharacterEncoding(encoding);}// 進入下一個攔截器chain.doFilter(request, response);}// FilterConfig 是攔截器的全域變數public void init(FilterConfig config) throws ServletException {this.config = config;}public void destroy() {}}


接下來要讓請求先進入字元攔截器中,在web.xml檔案中配置

<!-- 字元編碼集攔截器 -->  <filter>      <filter-name>CharacterFilter</filter-name>      <filter-class>com.jdbc.filter.CharacterFilter</filter-class>      <!-- 配置初始化參數 -->      <init-param>          <param-name>encoding</param-name>          <param-value>UTF-8</param-value>      </init-param>  </filter>  <!-- 映射路徑 -->  <filter-mapping>      <filter-name>CharacterFilter</filter-name>      <url-pattern>/*</url-pattern>  </filter-mapping>  

以上便是字元攔截器,獨立於業務代碼,只需要copy到項目中即可。


一點點學習,一點點成長,有什麼疑問和建議可以留言,我會及時處理。
更多乾貨等你來拿 http://www.itit123.cn/




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.