一、选择重定向还是转发
在我们编写代码需要跳转页面时,我们会考虑要选择重定向还是转发
下面是二者的一些区别:
1.重定向需要发送两次请求;而转发只需要发送一次请求
2.重定向的地址栏会发生变化;转发地址栏不发生变化(最明显的区别)
3.重定向跳转发生在客户端
二、路径总结
在使用重定向或者转发跳转页面时,明明页面的单词没有出错,我们却经常会出现404 not found,页面找不到的问题
解决:选择重定向跳转页面时,推荐使用绝对路径,从项目的根目录出发requst.getContextPath()得到项目名,再加上"/资源路径"
统一路径写法:requst.getContextPath()+"/资源路径"
三、乱码问题总结
在使用servlet时,我们想输出中文字,但经常出现乱码问题,为什么会这样呢?
原因:在我们编写前端页面时,定义我们的编码方式为UTF-8,在我们浏览器发送url时,现在的很多浏览器默认编码也为utf-8,或者为gbk;但是我们的服务器接收的默认编码却是ISO-8859-1
解决方案:
对于get请求:在tomcat8开始,服务器处理get请求的默认编码也为UTF-8了,所以8以后的编码不用改
在tomcat7以前,1.需要在server.xml配置文件里修改get的请求编码为UTF-8;
2.再将接收到的请求打散,然后组装成字符串
//1.打散 byte[] bytes = name.getBytes("UTF-8"); //2.组装成字符串 name = new String(bytes,"UTF-8");
对于post请求:
1.设置指定服务器给浏览器的编码方式(要确保使用的浏览器默认编码为utf-8)
response.setCharacterEcoding("UTF-8")
2.设置服务器响应给客户端的文件格式,同时,浏览器也根据这个参数来对接收到的数据进行解码
response.setContentType("text/html;charset=utf-8")
注意:这两行代码要放在第一,二行.
标签:总结,编码,UTF,重定向,跳转,一些,浏览器,servlet,页面 From: https://www.cnblogs.com/pilpill/p/16818952.html