首先建立一个jsp页面
列如
页面编码统一问题,这个最容易解决。
<%@ page language="java" import="java.util.*" pageEncoding="GBK" contentType="text/html; charset=GBK"%>
以GBK为例子,jsp页面加上上面一句就能解决页面编码问题。
是以GBK可以进行提交和编码
1、以get的方式提交,要解决以get的方式提交出现的乱码,只需要修改tomacat的配置文件就可以了
配置应用服务器的编码,这里以tomcat为例子。找到server.xml这个配置文件,并在该文件中找到如下位置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
在这里面加入URIEncoding="GBK"变成下面的样子
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GBK" />
2、以post的方式提交,修改tomacat的配置是无效的,可以采取下面的两种方式
方式1:
在struct.xml中进行配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 当struts.xml配置文件发生修改,会立刻加载,在生产环境下最好不要配置 --> <constant name="struts.configuration.xml.reload" value="true"/> <!-- 会提供更加友好的提示信息 --> <constant name="struts.devMode" value="true"/> <!-- 设置字符编码 --> <constant name="struts.i18n.encoding" value="GBK"/> <package name="user-package" extends="struts-default" namespace="/aa/a/a"> <action name="add" class="com.bjpowernode.struts2.UserAction"> <result>/add_user_success.jsp</result> </action> </package> </struts>
<constant name="struts.i18n.encoding" value="GBK"/> 默认的编码格式是utf-8
第二种方式,在项目的web.xml中进行配置
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>struts.i18n.encoding</param-name> <param-value>GB18030</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
通过上面的操作就解决了struct2中get和post方式解决乱码的问题