詳解JSP中使用過濾器進行內容編碼的解決辦法
問題
當通過JSP頁面,向數據庫中插入記錄的時候,可能因為JSP頁面編碼原因,導致插入到數據庫中的新紀錄出現亂碼。因此需要對JSP頁面中的內容進行編碼操作,從而保證與數據庫中的編碼一致。
解決方案
使用JSP中過濾器進行處理。處理步驟如下
1.新建一個servlet,使其實現javax.servlet.Filter接口
2.修改Servlet/JSP Mapping URL ,將其改為 /EncodingFilter
3.在EncodingFilter.java 的doFilter方法中實現JSP內容的中文過濾
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { //過濾中文 request.setCharacterEncoding("utf-8"); filterChain.doFilter(request, response);}
4 修改XML文件。通過Myeclipse工具默認生成的配置文件不能滿足要求,需要做如下修改
如下是Myeclipse自動生成的代碼
<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 至此,可以完成對JSP頁面內容的中文過濾處理
如有疑問請留言或者到本站社區交流討論,大家共同進步,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答