在最初使用Servlet时,觉得get方法很好用,也了解到传输一般性的变量,除了文件流和安全性外,都可以用get方法,所以,也就习惯用get方法了。
在实现一个注册方法过程中,中文注册都是乱码,跟踪后发现,在get方法中获取变量值时已经为乱码,与数据库存储无关。于是,开始了各种搜狗(习惯用这个),找到若干如下方法,有一篇帖子有汇总:http://www.iteye.com/topic/1123082
除了过滤器外,其它都试过了,仍没解决我的问题,后来咨询同事,不管哪个浏览器,都会将中文事先进行转换,而这一步是我没有实现的,但若通过Post传输,就没有这个问题,瞬间感觉又被自己的执迷不悟给坑到了。用一个文本输入的jsp后,Servlet获取jsp中的文本,不会再出现乱码。记下,希望以后能杜绝。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 注册<br/> <form action="/SSCTaxi/RegisterDriverServlet" method="post"> NAME:<input type="text" id="NAME" name="NAME" value="李四"/><br/> COMPANY:<input type="text" id="COMPANY" name="COMPANY" value="三元出租"/><br/> TAXINUM:<input type="text" id="TAXINUM" name="TAXINUM" value="京A12345"/><br/> DRIVERPHONE:<input type="text" id="DRIVERPHONE" name="DRIVERPHONE" value="13412345678"/><br/> <input type="submit" value="提交"/> </form> </body> </html>