国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 15:42:37
字體:
來源:轉載
供稿:網友

適合情況 -> 從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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 偃师市| 澳门| 张家港市| 台北县| 大余县| 宁南县| 正阳县| 崇礼县| 永德县| 肇东市| 千阳县| 临高县| 茂名市| 沛县| 盘锦市| 沙雅县| 蒙山县| 铜陵市| 鹤庆县| 浙江省| 泸溪县| 广河县| 高安市| 佛坪县| 贡山| 保德县| 岑溪市| 平南县| 贵定县| 青川县| 上思县| 义马市| 奉新县| 晋州市| 北辰区| 和平县| 南江县| 山西省| 香港 | 偃师市| 娄底市|