一: Servlet声明周期:装载- >构建- >初始化 - > 提供服务- > 销毁
1 )
Web容器加载Servlet类【servlet 类一定要继承httpservlet/ GenericServlet可以使用: 注解配置 @WebServlet(value = {"/demo.do","/demo2.do"})
或者web.xml 方式来配置;】并实例化(默认是延迟加载,只执行一次)
2)运行init方法进行初始化(只执行一次)
3)用户请求该Servlet ,请求到达服务器时,运行其servlet方法(每次调用就执行)
4)service方法运行于请求对应的doXXX(每次)
5)销毁实例时调用destory方法(一次)
二: 转发(forward)和重定向(redirect)的区别:
1)转发是容器控制的跳转,服务器直接访问目标地址,把目标地址的响应内容读取出来,直接发送给浏览器,浏览器地址不变。
2)重定向是服务器收到请求后,返回一个状态码给浏览器,,浏览器二次发送请求 请求新的新地址,地址栏改变
3)转发效率更高,尽量用转发,但是转发不能跳转到其他服务器上,重定向可以跳转到其他服务器。
三: request功能/response功能
request功能: 获取参数,请求转发,共享数据,get post请求功能;
response功能: 重定向 , 传送数据到浏览器;
四: get / post 区别 :
- a) 语义区别:GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
- b)传送的文件大小不同:GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据。
- c)传送的方式不同:GET请求的数据会附在URL之后,POST把提交的数据则放置在是HTTP的请求体中。POST的安全性要比GET的安全性高。
get 1次请求 post 2次请求 - d)幂等性不同:get具有幂等性,post 不具有幂等性;
- e)Get限制Form表单的数据集必须为ASCII字符,而Post支持整个ISO10646
- f) 处理中文编码:
get 只须设置响应 response.setContentType("text/html;charset=utf-8");中文编码;
post 只须设置请求request.setCharacterEncoding("UTF-8") 中文编码;
五: Session和Cookie的区别:
1)session保存在服务器,cookie 保存在客户端
2)session中保存的是对象 存储不限量, cookie保存的是字符串,限制储存空间只允许4kb
3)session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到,而cookie中如果设置了路径参数,那么同一个网站中不用路径下的cookie互相是访问不到的,另外cookie还可以设置过期时间。
4)session需要借助cookie才能正常,如果客户端完全禁止cookie,session将失效。







网友评论