什么是servlet
Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet的生命周期
init、service、destroy、是Servlet生命周期的方法。
当Servlet第一次被请求时,Servlet容器实例化一个Servlet对象并调用init方法初始化,然后再调用service方法处理请求,init只有在第一次请求是时候才调用,而service是每一次请求都会调用。
当servlet容器正常关闭时,会调用servlet的destroy方法
乱码问题
service中使用的编码解码方式默认为:ISO-8859-1,此编码并不支持中文,因此会出现乱码问题,所以我们需要手动修改编码方式为UTF-8编码,才能解决中文乱码问题。
Request:
Post请求可以用request.setCharacterEncoding(“UTF-8”);
Get请求需用我们手动将ios8895-1的字符串转为utf-8的字符串,newString(parameter.getbytes(“iso8859-1”),“utf-8”);
Response:
response.setContentType(“text/html;charset=UTF-8”)
servlet的三大作用域对象
request(httpservletrequest)
session(httpsession)
application(ServletContext)
cookie和session的区别
- 相同:Cookie和session都是javaweb会话跟踪技术的解决方案
- 不同:
(1)存储位置:cookie数据存放在客户的浏览器上,session数据放在服务器上
(2)存储内容:cookie存的是字符串,且存中文是需要编码解码,session存的是对象
(3)存储大小:cookie的大小限制的3k而session没有大小限制