詳解JSP中使用過(guò)濾器進(jìn)行內(nèi)容編碼的解決辦法
問(wèn)題
當(dāng)通過(guò)JSP頁(yè)面,向數(shù)據(jù)庫(kù)中插入記錄的時(shí)候,可能因?yàn)镴SP頁(yè)面編碼原因,導(dǎo)致插入到數(shù)據(jù)庫(kù)中的新紀(jì)錄出現(xiàn)亂碼。因此需要對(duì)JSP頁(yè)面中的內(nèi)容進(jìn)行編碼操作,從而保證與數(shù)據(jù)庫(kù)中的編碼一致。
解決方案
使用JSP中過(guò)濾器進(jìn)行處理。處理步驟如下
1.新建一個(gè)servlet,使其實(shí)現(xiàn)javax.servlet.Filter接口
2.修改Servlet/JSP Mapping URL ,將其改為 /EncodingFilter
3.在EncodingFilter.java 的doFilter方法中實(shí)現(xiàn)JSP內(nèi)容的中文過(guò)濾
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { //過(guò)濾中文 request.setCharacterEncoding("utf-8"); filterChain.doFilter(request, response);}
4 修改XML文件。通過(guò)Myeclipse工具默認(rèn)生成的配置文件不能滿足要求,需要做如下修改
如下是Myeclipse自動(dòng)生成的代碼
<servlet> <description>chinese encoding</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>EncodingFilter</servlet-name> <servlet-class>com.nichao.filter.EncodingFilter</servlet-class> </servlet> <servlet-mapping> <servlet-name>EncodingFilter</servlet-name> <url-pattern>/EncodingFilter</url-pattern> </servlet-mapping> --> ``` 將其修改為 ``` <filter> <filter-name>EncodingFilter</filter-name> <filter-class>com.sina.filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
5 至此,可以完成對(duì)JSP頁(yè)面內(nèi)容的中文過(guò)濾處理
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,大家共同進(jìn)步,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選