一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - struts2 中文亂碼的解決辦法分享

struts2 中文亂碼的解決辦法分享

2019-11-06 11:28java教程網 JAVA教程

這篇文章主要介紹了struts2 中文亂碼的解決辦法,需要的朋友可以參考下

適合情況 -> 從jsp傳入到action時的亂碼情況,這里以GBK為例

1.建立一個用于轉換編碼的filter
文件位置舉例:src.util.SetCharacterEncodingFilter.java

 

復制代碼代碼如下:


package util;

 

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.UnavailableException;

/**
 * Example filter that sets the character encoding to be used in parsing the
 * incoming request
 */
public class SetCharacterEncodingFilter implements Filter {

    /**
     * Take this filter out of service.
     */
    public void destroy() {
    }
    /**
     * Select and set (if specified) the character encoding to be used to
     * interpret request parameters for this request.
     */
    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain)throws IOException, ServletException {

    request.setCharacterEncoding("gbk");

    // 傳遞控制到下一個過濾器
    chain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {
    }
}

 

 

2.修改web.xml,在struts的FilterDispatcher映射之前添加2個filter

復制代碼代碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
 xmlns="http://java.sun.com/xml/ns/javaee" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
    <filter>
  <filter-name>Set Character Encoding</filter-name> 
  <filter-class>util.SetCharacterEncodingFilter</filter-class> 
 </filter> 
 <filter-mapping> 
     <filter-name>Set Character Encoding</filter-name>
     <url-pattern>/*</url-pattern> 
 </filter-mapping>

    <filter> 
        <filter-name>struts-cleanup</filter-name> 
        <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> 
    </filter>
    <filter-mapping>
        <filter-name>struts-cleanup</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    

    
 <filter>
  <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 </filter>
  <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
</web-app>

 

3.你的JSP頭應該有
<%@ page language="java" pageEncoding="GBK"%>

4.在struts.xml中修改默認的編碼設定

復制代碼代碼如下:


<struts>
 <constant name="struts.i18n.encoding" value="gbk"></constant>

 

...
...
...

</struts>

 

基本上就這樣可以解決大多傳入的字符亂碼問題

PS:如果是數據庫提取字符亂碼,比如mysql,確認你的數據庫內字符是gbk,并且連接字符串指定了字符編碼
<property name="url" value="jdbc:mysql://localhost/database?useUnicode=true&characterEncoding=gbk"></property>

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99热久久这里只有精品6国产网 | 手机看片国产自拍 | 视频一区在线免费观看 | 男人女人日皮视频 | 日韩毛片免费在线观看 | 精品久久久久久午夜 | 52av我爱avhaose01好 | 天天成人| 超级乱淫伦短篇在车上 | 欧美视频精品一区二区三区 | 亚洲成人伦理 | 国产三级精品91三级在专区 | 男人的天堂在线观看视频不卡 | 欧美人shou交在线播放 | 黄色a站| 国产在线观看精品香蕉v区 国产在线观看a | 无码AV免费精品一区二区三区 | 99精品99| 亚洲精品卡1卡二卡3卡四卡 | 欧美日韩看看2015永久免费 | 国产原创精品 | 亚洲国产免费观看视频 | 精品无码久久久久久久动漫 | 奇米影视在线视频 | 天天综合色天天综合 | 亚洲精品色婷婷在线影院麻豆 | 日本www午夜色在线视频 | 欧美最猛性xxxxx69交 | 午夜小视频免费观看 | 日本一区二区三区精品 | 精品AV综合导航 | 亚洲欧美在线免费观看 | 国产高清精品自在久久 | www伊人| 日本亚洲娇小与黑人tube | 日本漫画工囗全彩番在线 | 女海盗斯蒂内塔的复仇2免费观看 | 亚洲精品卡1卡二卡3卡四卡 | 插入粉嫩| 深夜福利一区 | 亚洲国产综合精品 |