Struts2, Tomcat6, MySQL5.1乱码问题解决

本文介绍了解决Struts2应用中GET和POST请求表单出现乱码的方法,包括配置Tomcat的URIEncoding参数及使用CharacterEncodingFilter过滤器。
MySQL数据库,和Eclipse中的所有设置字符编码的地方都设置成UTF-8
然后利用MySQL的设置向导重新设置MySQL的默认编码也是UTF-8即可

Struts2,或者说JSP的表单乱码,分为get和post方法

get方法
在tomcat的conf\server.xml中第一个Connector中加入属性URIEncoding="UTF-8"

post方法
添加一个CharacterEncodingFilter拦截器

/*
$Id$

Copyright (C) 2003-2009 Virginia Tech.
All rights reserved.

SEE LICENSE FOR MORE INFORMATION

Author: Middleware Services
Email: middleware@vt.edu
Version: $Revision$
Updated: $Date$
*/
package servlet.filter;

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;

/**
* Sets the request and/or response character encoding based on the presence of
* either or both of the following init params, {@link #REQUEST_CHARSET_NAME}
* {@link #RESPONSE_CHARSET_NAME}.
*
* <p>
* <strong>NOTE:</strong> this filter should be as close to the beginning of the
* filter chain as possible. Any filters that obtain request parameters, e.g.
* <code>request.getParameter(...)</code>, prior to setting the character set
* via this filter will use the platform default character set.
* </p>
*
* @author Middleware Services
* @version $Revision$
*/
public class CharacterEncodingFilter implements Filter {

/**
* Name of init param for setting request character encoding. The value
* should be a valid Java character set name, e.g. UTF-8.
*/
public static final String REQUEST_CHARSET_NAME = "requestCharsetName";

/**
* Name of init param for setting response character encoding. The value
* should be a valid Java character set name, e.g. UTF-8.
*/
public static final String RESPONSE_CHARSET_NAME = "responseCharsetName";

/** Request character set name. */
private String requestCharsetName;

/** Response character set name. */
private String responseCharsetName;

/** {@inheritDoc}. */
public void init(final FilterConfig filterConfig) throws ServletException {
if (filterConfig.getInitParameter(REQUEST_CHARSET_NAME) != null) {
requestCharsetName = filterConfig.getInitParameter(REQUEST_CHARSET_NAME);
}
if (filterConfig.getInitParameter(RESPONSE_CHARSET_NAME) != null) {
responseCharsetName = filterConfig.getInitParameter(RESPONSE_CHARSET_NAME);
}
}

/** {@inheritDoc}. */
public void doFilter(final ServletRequest request,
final ServletResponse response, final FilterChain chain)
throws IOException, ServletException {
if (requestCharsetName != null) {
request.setCharacterEncoding(requestCharsetName);
}
if (responseCharsetName != null) {
response.setCharacterEncoding(responseCharsetName);
}
chain.doFilter(request, response);
}

/** {@inheritDoc}. */
public void destroy() {
}
}

然后在web.xml里加入(加在其他拦截器前面)

<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>servlet.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>requestCharsetName</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>responseCharsetName</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

即可
内容概要:本文围绕VMware虚拟化环境在毕业设计中的应用,重点探讨其在网络安全与AI模型训练两大领域的实践价值。通过搭建高度隔离、可复现的虚拟化环境,解决传统物理机实验中存在的环境配置复杂、攻击场景难还原、GPU资源难以高效利用等问题。文章详细介绍了嵌套虚拟化、GPU直通(passthrough)、虚拟防火墙等核心技术,并结合具体场景提供实战操作流程与代码示例,包括SQL注入攻防实验中基于vSwitch端口镜像的流量捕获,以及PyTorch分布式训练中通过GPU直通实现接近物理机性能的模型训练效果。同时展望了智能化实验编排、边缘虚拟化和绿色计算等未来发展方向。; 适合人群:计算机相关专业本科高年级学生或研究生,具备一定虚拟化基础、网络安全或人工智能背景,正在进行或计划开展相关方向毕业设计的研究者;; 使用场景及目标:①构建可控的网络安全实验环境,实现攻击流量精准捕获与WAF防护验证;②在虚拟机中高效开展AI模型训练,充分利用GPU资源并评估性能损耗;③掌握VMware ESXi命令行与vSphere平台协同配置的关键技能; 阅读建议:建议读者结合VMware实验平台动手实践文中提供的esxcli命令与网络拓扑配置,重点关注GPU直通的硬件前提条件与端口镜像的混杂模式设置,同时可延伸探索自动化脚本编写与能效优化策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值