有关S2SH中乱码的简单解释
乱码其实是S2SH开发过程中经常遇到而又不太注意的东西,往往这一次解决了下次不知道什么情况下又会出现
记录一下自己最近一次解决乱码的过程,仅供参考
程序很简单,假设一个用户注册页面提交,后台struts的UserAction接收参数,再调用Dao的方法存储。整个S2SH工程配置均无问题,数据库mysql数据库查询数据发现中文乱码。
很简单的程序
1.register.jsp注册页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>用户注册</title> </head> <body> <form method="post" action="u.action">用户名:<input type="text" id="username" name="username"><br>密码:<input type="password" id="password" name="password"><br>确认密码:<input type="password" id="password2" name="password2"><br><input type="submit" value="注册提交"></form> </body></html>
@Component("u")@Scope("prototype")public class UserAction extends ActionSupport implements ModelDriven {private UserService userService;private UserDto userDto = new UserDto();private User user ;@Overridepublic String execute() throws Exception{User u = new User();u.setUsername(userDto.getUsername());u.setPassword(userDto.getPassword());System.out.println(">>>>>>>>>username="+userDto.getUsername());userService.save(u);return "success";}}public Object getModel(){return userDto;}public UserDto getUserDto() {return userDto;}public void setUserDto(UserDto userDto) {this.userDto = userDto;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}public UserService getUserService() {return userService;}@Resourcepublic void setUserService(UserService userService) {this.userService = userService;}
@Component("userDao")public class UserDaoImpl implements UserDao {private HibernateTemplate hibernateTemplate;public void save(User u){hibernateTemplate.save(u);}public HibernateTemplate getHibernateTemplate() {return hibernateTemplate;}@Resourcepublic void setHibernateTemplate(HibernateTemplate hibernateTemplate) {this.hibernateTemplate = hibernateTemplate;}}
<constant name="struts.i18n.encoding" value="UTF-8" />
<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>