jsp字符拦截器
很多在學(xué)習(xí)jsp的時(shí)候遇到亂碼的問題吧,解決方法其實(shí)很簡(jiǎn)單,自定義一個(gè)字符攔截器即可。
為了不耦合在業(yè)務(wù)代碼中,我們應(yīng)該將字符轉(zhuǎn)換代碼獨(dú)立出來,做成一個(gè)字符攔截器
直接上代碼:
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對(duì)應(yīng)的init-param中的param-valueString encoding = config.getInitParameter("encoding");// 只要定義了變量;就要判斷是否為空;不然會(huì)報(bào)空指針異常if (encoding != null) {// 指明內(nèi)容請(qǐng)求格式的字符編碼集response.setContentType("text/html ;charset=" + encoding);// 請(qǐng)求時(shí)規(guī)范字符編碼格式request.setCharacterEncoding(encoding);// 指明輸出的格式字符編碼集response.setCharacterEncoding(encoding);}// 進(jìn)入下一個(gè)攔截器chain.doFilter(request, response);}// FilterConfig 是攔截器的全局變量public void init(FilterConfig config) throws ServletException {this.config = config;}public void destroy() {} }
<!-- 字符編碼集攔截器 --><filter><filter-name>CharacterFilter</filter-name><filter-class>com.jdbc.filter.CharacterFilter</filter-class><!-- 配置初始化參數(shù) --><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>
以上便是字符攔截器,獨(dú)立于業(yè)務(wù)代碼,只需要copy到項(xiàng)目中即可。
一點(diǎn)點(diǎn)學(xué)習(xí),一點(diǎn)點(diǎn)成長(zhǎng),有什么疑問和建議可以留言,我會(huì)及時(shí)處理。
更多干貨等你來拿?http://www.itit123.cn/
總結(jié)
- 上一篇: 拼多多API接口:item_search
- 下一篇: 最浅显的IE反劫持攻略(转)