MyEclipse10.7修改模板:http://blog.sina.com.cn/s/blog_bfed8f8a0101bi2v.html
1.相关的几个重要的类之间的关系
2.ServletConfig
3.ServletContext
1)数据共享
2)全局参数
3)转发
4)获取资源文件路径
注意src编译之后对应WEB-INF下的classes
4.Response输出中文乱码问题
1)采用字节流输出
情况1:默认输出的字节是.getBytes()得到的,则默认系统编码。如果在本机上浏览器也会采用默认编码,不会有乱码。
情况2:输出字节是其它编码
解决办法1:输出的字节里添加<meta content-type="text/html;charset=utf-8">文本
解决办法2:response.setContentType("text/html;charset=utf-8");
解决办法3:response.addHeader("Content-Type","text/html;charset=utf-8");
解法办法的本质都是告诉浏览器采用什么编码来解析字节
2)采用字符流输出
字符流输出中文乱码的根本原因是服务器向浏览器传输时,默认采用ISO-8859-1编码,将字符变成字节。
解决办法1:response.setCharactorEncoding("UTF-8"); //服务器采用UTF-8编码
response.addHeader("Content-Type","text/html;charset=utf-8"); //同时告诉浏览器采用UTF-8解码
解决办法2:response.setContentType("text/html;charset=utf-8"); //同时通知服务器和浏览器采用UTF-8编码
3)下载中文名文件乱码
将中文名用URLEncoder使用UTF-8编码
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(file.getName(), "UTF-8"));
4.Request请求中文乱码问题
1)post请求:
服务器默认采用request.getCharatorEncoding指定的字符集来编码request的请求参数。只要在获取请求参数之前request.setCharactorEncoding()与请求页面 的编码一致即可。(但是我在360上get也可以??)
2)get请求
手动编码
bytes = str.getBytes("ISO-8859-1");
new String(bytes,"统一编码");