java ---servlet解决中文乱码的几种办法
来源:互联网 发布:js 动画效果百叶窗 编辑:程序博客网 时间:2024/04/29 20:13
<pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" 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_3_0.xsd"> <display-name></display-name> <servlet> <servlet-name>login</servlet-name> <servlet-class>cn.hncu.servlets.LoginServlet</servlet-class> <init-param> <param-name>character</param-name> <param-value>utf-8</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>login</servlet-name><pre name="code" class="java">package cn.hncu.servlets;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class LoginServlet implements Servlet {@Overridepublic void destroy() {}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic String getServletInfo() {return null;}private String charset = null;@Overridepublic void init(ServletConfig config) throws ServletException {charset = config.getInitParameter("character");}@Overridepublic void service(ServletRequest req, ServletResponse res)throws ServletException, IOException {//解决中文乱码://※前提:前台页面必须以post方式提交中文 ---因为post会设置http协议头“Content-Type = application/x-www-form-urlencoded”,这样Tomcat才知道这是编码的字符数据// 法1: 在Tomcat的server.xml中的<Connect>中添加一个属性:URIEncoding="utf-8"//法1是不可取的,因为Tomcat是公共平台,你只是其中的一个项目,不能把平台看成私有的即最好不要去修改,否则其它项目可能会出问题。//※注意:法2 和 法4 的设置必须在读取参数[ req.getParameter("..") ]之前设置,否则不行//法2:这种解决方式是比较好的,但有一个缺点:如果以后要改编码,就得改源代码,对客户来说比较麻烦。对程序员也一样//req.setCharacterEncoding("utf-8");//法4:其实是在web.xml中把编码设置成参数,然后在这里读取出来,利用“法2”进行设置。以后如果要更改编码,只要更改web.xml中的相应参数设置就OK了req.setCharacterEncoding(charset);String name = req.getParameter("name");System.out.println(name);System.out.println("okokokok....");//法3:把Tomcat解错的码还原回来----还行,但如果前台传输的很多参数都是中文,那么我们对每个参数都要这样还原,显然比较麻烦!//byte bs[] = name.getBytes("iso8859-1");//name = new String(bs,"utf-8");//System.out.println(name);String pwd = req.getParameter("pwd");//用name和pwd到后台去访问数据库,以验证该用户信息是否正确(登录成功)//本例这些步骤省略了res.setContentType("text/html;charset=utf-8");//告诉浏览器,我下面发的内容是什么格式的东西String html ="<html><body><font color='red'>name:</font>"+name+"<br/><font color='red'>pwd:</font>"+pwd+"</body></html>";PrintWriter out = res.getWriter();out.print(html);//Tomcat项目运行时,加载jar包或类文件的顺序:TOMCAT_HOME\lib --> webapps\项目名\WEB-INF\lib --> webapps\项目名\WEB-INF\classes目录下面的类//后加载的会覆盖前面的---即后加载有效}}<pre name="code" class="html"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>演示servlet技术</title> </head> <body> <h2>以下演示用户登录解决乱码问题</h2> <!-- 要向服务器传中文,前提是用post方式 --> <form action="/servletDemo/login" method="post"> 姓名:<input type="text" name="name"><br/> 密码:<input type="password" name="pwd"><br/> <input type="submit" value="登录"> </form> </body> </html>
<url-pattern>/login</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
0 0
- java ---servlet解决中文乱码的几种办法
- cocos2d-x解决中文乱码问题的几种办法
- cocos2d-x解决中文乱码问题的几种办法
- Java servlet解决中文乱码的解决方案
- 几种解决php+mysql中uft-8中文编码乱码的办法
- java解决中文乱码的几种情况
- java解决几种情况下的中文乱码问题
- 解决中文乱码的几种解决方案
- Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法
- 解决struts中文乱码的办法
- 解决struts中文乱码的办法
- Java servlet中cookie中文乱码解决
- Servlet 中文乱码解决
- Servlet 中文乱码解决
- Servlet 中文乱码解决
- Servlet 中文乱码解决
- Servlet 中文乱码解决
- Servlet 中文乱码解决
- Median of Two Sorted Arrays
- Python 函数
- 1996黄金一代NBA选秀
- JSTL标签库的基本使用
- 蜂鸣器驱动
- java ---servlet解决中文乱码的几种办法
- 动态规划的思考(2)
- 2003白金一代NBA选秀
- LED灯驱动的编写
- 设计模式 笔记(1)
- 根据滚动条下拉加载列表
- 10 Little-Known Ways to See How Much Traffic a Website Gets
- tar解压出错:gzip: stdin: unexpected end of file的解决
- AJAX跨域请求和CORS跨域资源共享