get请求参数字符编码的处理
conf/server.xml 6x URIEncoding=”UTF-8”
post请求参数字符编码的处理
request.setCharacterEncoding(“UTF-8”);
响应流字符编码的处理
response.setContentType(“text/html;charset=utf-8”);
通过jdbc往数据库里面存值的字符编码的处理
什么情况下不出现乱码?
保证本身录的信息是中文,保证数据库的安装环境本身是UTF-8,保证创建的数据库本身也是UTF-8
出现乱码原因是:数据库和安装的环境的字符编码不一致
为了应急安装时环境不是UTF-8,创建的数据库是UTF-8,但是是中文乱码的情况
通用处理方式
String username = request.getParameter(“username”);
//先将username翻译成ISO8859-1,然后再翻译成utf-8,因为不同编码格式之间,不能强制转换,需要经过ISO8859-1这个中间的过程
String username = new String(username.getBytes(“ISO8859-1”),“utf-8”);
对比request.setCharacterEncoding(“utf-8”);对比这两种方法,上述的需要对每一个参数进行转码处理,request方法不管接受多少参数,只需要设置一次就可以了,当然,这仅仅是servlet中,如果不在servlet中,就需要使用上述的方式了
web站点的默认欢迎页的设置
(1)对于欢迎页的设置,我们习惯于使用index系列的名字.这是我们一种对于前端约定俗成的规矩.只要看到了index,就说明他是一个项目的初始页或者是欢迎页.
index.html
index.htm
index.jsp
index.jspx
(2)欢迎页可以同时配置多个,按照上下的配置顺序,先有哪个,就执行哪个.
(3)欢迎页可以配置前端资源,也可以配置后端servlet
(4)常用方式
利用欢迎页跳转到所要展现的页面,既能保持欢迎页的命名规则,又能跳转到想要跳转的页面
Servlet线程的安全性问题
对于每一类来讲,线程安全性主要体现在成员变量上,在我们的实际项目开发中,没有需求会使用到servlet中的成员变量,所以为了线程的安全性问题,我们不在servelt中使用成员变量就可以了.