一、Httpservlet下载文件
下载文件有两种方式
第一,tomcat有默认的servlet来提供下载
直接在html中写就行了,download和该html文件在同级目录中

第二,手动下载,重新写一个servlet

Demo1是创建的servlet
当然,要在web.xml中注册该servlet

二、String.getBytes("ISO-8859-1")
new String(getBytes(ISO-8859-1),UTF-8)来避免乱码,当然UTF-8可以换成GBK,unicode。
tomcat默认全部都是用ISO-8859-1编码,不管你页面用什么显示,Tomcat最终还是会替你将所有字符转做ISO-8859-1.那么,当在另目标页面再用GBK翻译时就会将本来错的编码翻译成GBK的编码,这时的文字会乱码.
所以需要先将得到"字符"(不管是什么)都先用字节数组表示,且使用ISO-8859-1进行翻译,得到一个在ISO-8859-1编码环境下的字节数组.例如:AB表示成[64,65].然后再用GBK编码这个数组,并翻译成一个字符串.
三、如何处理IDEA控制台乱码问题
-
首先找到ieda安装的目录。通过鼠标右键打开文件所在位置,找到对应的目录。
-
查找两个文件的idea64.exe.vmoptions和idea.exe.vmoptions,修改两个文件的内容。
-
在idea64.exe.vmoptions文件的末尾增加“-Dfile.encoding=UTF-8”。然后保存关闭即可。
-
在idea.exe.vmoptions文件的末尾增加“-Dfile.encoding=UTF-8”。然后保存关闭即可。
-
重启idea,依次打开File--settings--Editor。
-
找到这几处文件,将编码格式修改为UTF-8。
四、Servlet中的重定向和转发
重定向
登录成功后如何跳转到新的页面,以提示登陆成功?

在登陆表单输入账号密码,成功后就会跳转到login_success.html网页中。
1.地址上显示的是最后的那个资源的路径地址
2.请求次数最少有两次,服务器在第一次请求后,会返回302,以及一个地址,浏览器再根据这个地址,执行第二次访问
3.可以跳转到任意路径,不是自己的工程也可以跳
4.效率稍微低一些,执行两次请求
5.后续的请求,没法使用上一次的request存储的数据,或者没法使用上一次的request对象,因为这是 两次不同的请求
请求转发

1.地址上显示的是请求servlet的地址,返回200 ok
2.请求次数只有一次,因为是服务器内部帮客户端执行了后续的工作
3.只能跳转自己项目的资源路径
4.效率上稍微高一点,因为只执行一次请求
5.可以使用上一次的request对象
两者区别:

五、Cookie
饼干,其实是一份小数据,是服务器给客户端,并且存储在客户端上的一份小数据,
应用场景:自动登录、浏览记录、
为什么要有这个东西?http的请求是无状态的,就是没记性,客户端与服务器在通讯的时候是无状态的,其实就是客户端在第二次来访的时候,服务器根本就不知道这个客户端以前有没有来访问过,为了更好的用户体验,更好的交互【自动登录】,其实从公司层面讲,就是为了更好的收集用户习惯【大数据】
Cookie怎么用?
客户端获取Cookie:

获取客户端带过来的Cookie:

首先,客户端向服务器发出请求,说我要Cookie,然后Servlet就给了客户端一个Cookie,当客户端再访问服务器的时候,服务器就能获取到客户端的Cookie,而此时服务器已经不记得(无状态)自己之前给客户端的 Cookie了。
六、如何在IDEA下使用TOMCAT,在浏览器中找到html或者是Servlet
首先需要知道下图中Application context应该是虚拟路径,就是当前项目的虚拟路径
在该路径下直接后缀html文件名(加后缀名),在浏览器上就能访问到相应的html文件,比如localhost:8080/Servlet/login.html(我的虚拟路径是Servlet),就能访问到网页,若是想访问Servlet,需要在虚拟路径后面缀上web.xml文件中注册该servlet的<url-pattern></url-pattern>

标签中的内容,比如localhost:8080/Servlet/Cookie就是访问一个Servlet
还有,使用IDEA开启服务器和使用tomcat开启服务器有略微的不同,前者是必须使用虚拟路径才能访问,后者是只能使用真实路径。
本文详细介绍了Servlet中文件下载的方法,包括Tomcat默认的下载方式和自定义Servlet实现;探讨了编码问题,如解决IDEA控制台乱码及String编码转换;讲解了Servlet中的重定向与转发的区别;并介绍了Cookie的应用场景和使用方法。






850

被折叠的 条评论
为什么被折叠?



