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

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

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>

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美老人与小伙子性生交 | 999国产精品亚洲77777 | 黄网在线观看免费网站台湾swag | 男女肉粗暴进来下面好紧 | 亚洲精品国产在线观看 | 亚洲欧美日韩中文高清一 | 日韩高清一区二区三区不卡 | 揉搓喷水h| 日本一区二区视频免费播放 | 免费我看视频在线观看 | 男女xxoo做爰猛烈动态一 | 俄罗斯美女破苞 | 亚洲精品在线免费 | 女子监狱第二季未删减在线看 | 亚洲天堂男人的天堂 | 色戒完整版2小时38分钟 | 天天色影视综合网 | 天天色综 | 精品一区二区三区在线成人 | 暖暖在线精品日本中文 | 日本五级床片全都免费播放 | 毛片在线观看网站 | 国产精品福利 | 特级一级全黄毛片免费 | 国产成人精品曰本亚洲77美色 | 蜜桃成熟3在线观看 | 日本韩国无矿砖码 | 四虎国产视频 | 久久91精品国产91久久户 | 欧美日韩国产成人综合在线影院 | 二区三区在线观看 | 近亲乱中文字幕 | 好湿好滑好硬好爽好深视频 | 久久青青草原综合伊人 | 99久久精品免费精品国产 | 99热在这里只有精品 | 白丝h视频| 99成人免费视频 | 日日射视频 | 欧美成人aa久久狼窝动画 | 把内裤拔到一边高h1v1 |