JSP页面1:
list=(List)request.getAttribute("operatorlist"); %>用户名 | 密码 | 等级 | 操作 |
---|---|---|---|
修改用户 删除用户 | |||
添加用户 |
xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxx
GetOneUserServlet:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//response.setCharacterEncoding("utf-8");
OperatorService operatorService=new OperatorService();
System.out.println(request.getParameter("name"));
Operator operator=operatorService.findOne(request.getParameter("name"));
//request.getSession().putValue("updateoperator", operator);
//request.getSession().setAttribute("updateoperator", operator);
if (operator==null) {
System.out.println("operator==null");
}else {
System.out.println("XXXXXXXXXXXXXXXXXXXXXXXXXXX");
}
request.setAttribute("updateoperator", operator);
request.getRequestDispatcher("updateOperator.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}如果修改的是JSP页面1中name为中文的记录在这里面的到的是乱码
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx
JSP页面2:
用 户名: | |
密 码: | |
取消 |
xxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
这个页面有时也会出现乱码- -!
JSP 页面需要包含编码只定:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
如果是html页面, 需要添加metadate:
确保文件保存的格式是UTF-8 编码:
Eclipse 右键属性能看到
下来时GET和POST提交:
1. GET 提交需要配置tomcat/config/server.xml中的connector:
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
public class EncodingFilter implements Filter {
protected String encoding = "UTF-8";
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding = filterConfig.getInitParameter("encoding");
}
public void destroy() {
encoding = null;
}
}
[/code]
Web.xml配置:
[code="xml"]
SetCharacterEncoding
cn.com.dayang.common.web.EncodingFilter
encoding
UTF-8
SetCharacterEncoding
*
[/code]
关于Eclipse输出乱码:
Win系统可能存在这个问题, 检查一下eclipse的console输出是不是采用的GBK编码.
GBK试下!
jsp1 有
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
jsp2没有?
检查submit之后 servlet收到的是不是乱码
.jsp 文件的编码,修改为UTF-8 编码格式
直接用一个Filter搞定了。
有没有提交到数据库,有的话,看下数据库的编码是哪种的
也许是你的Eclipse工程编码和你的页面编码不一样导致的!
楼主,首先保证你的编码要统一,如页面里,数据库里,所有编码都要设置成utf8.
其次,你修改JSP页面1中name为中文的记录,用的是get传值的方法,这样会导致乱码。如果你使用的是tomcat容器,可以在server.xml里Connector中设置URIEncoding="UTF-8",这样get传参时会使用utf8编码,或者,在servlet接收name值时转一下编码,如:new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"),出现乱码无非那几种问题。
朋友,你的问题只要保证,页面,项目,tomcat的server.xml配置文件的编码设置成一样,问题就可以解决!