servlet的一些总结
一、选择重定向还是转发
在我们编写代码需要跳转页面时,我们会考虑要选择重定向还是转发
下面是二者的一些区别:
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")
注意:这两行代码要放在第一,二行.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix