j2ee拾遗1

Servlet相关(1)


servlet生命周期

1)servlet是单实例多线程的,当在第一次收到请求时,服务器创建servlet,与此同时,调用init()方法,实现初始化操作;
2)调用service()方法。其中service()方法会根据请求对应的doGet()和doPost()等方法完成业务操作;
3)以后没放收到请求时,对于同一个实例,创建一个新的线程,调用service()方法处理业务逻辑;
4)当服务器正常关闭或者servlet()被移除时,会调用destroy()方法,实现销毁操作。

转发(forward)和重定向(redirect)的区别

  • 转发试一次请求,重定向是两次请求;
  • 请求转发地址栏不发生改变,重定向地址栏改变;
  • 请求时
 request.getRequestDispatcher(path).forward(request,response);
  • 重定向时
 response.sendRedirect(path);
  • 请求转发的路径是内部路径,重定向的路径是绝对路径;
  • 如果需要访问外部资源,只可以使用重定向;

get和post的区别

  • get请求用来从浏览器上获取资源,而post用来向服务器提交数据;
  • get会将表单中的数据,按照name=value的形式,添加到action所指向的URL后面,并且两者间使用“?”连接,各个变量之间使用“&”连接;post将表单中的数据放在HTML头部(header),传递到action指向的URL,不会出现在地址栏中;
  • get传输的数据收到URL长度限制(1024字节),而post可以传输大量的数据,上传文件只可以使用post方式。

JSP和Servlet的联系

  • Servlet是一个特殊的java 程序,他运行于服务器上的JVM中,依靠服务器的支持向浏览器提供显示内容;
  • jsp本质是servlet的一种简易形式,jsp会被服务器处理成一个类似于servlet的java 程序,可以简化页面内容的生成;
  • servlet和jsp最主要的不同点在于:servlet的应用逻辑是在java文件中,并且完全从表示层中的HTML分离开来。而jsp的情况是java和HTML可以组合成一个扩展名为.jsp的文件;
  • jsp侧重视图,servlet侧重控制逻辑。分别是view和controller。

JSP的9个内置对象和4个域对象

9个内置对象:
request: 封装客户端的请求,其中包含来自GET和POST请求的参数;
application: 封装服务器运行环境的对象;
response: 封装服务器对客户端的响应;
session: 封装用户会话的对象;
page: JSP页面本身,相当于java类中的this;
config: web应用的配置对象;
exception: 封装页面抛出来异常的对象;
pageContext:通过该对象可以获取其他对象;
out: 用来传送回应得到输出;
4个域对象
page:
request:
session:
application:

实现会话跟踪的技术

首先,因为HTTP协议本身就是无状态,服务器为了区别不同的用户,就需要对用户会话进行跟踪,简单说就是登记用户,为其分配唯一的ID,下一次如果在请求中包含该ID,服务器据此判断该请求来源的身份;


URL重写:在URL中添加会话信息作为请求的参数,或者将唯一的会话ID添加到URL结尾,以表示一个会话;

设置表单隐藏域: 将和会话跟踪相关的字段添加到隐藏域中,这些信息不回在浏览器显示,但是提交表单时提交给服务器;

cookie:cookie有两种,一种是基于窗口的,浏览器关闭后,cookies就没有了;另一种是将信息存储在一个临时文件中,并设置其有效路径和最大存活时间。当用户通过浏览器和服务器建立一次会话后,会话ID就会随相应信息储存在基于窗口的cookie中,那就意味着只要浏览器没有关闭,会话没有超时,下一次请求时这个会话ID又会提交给服务器,让服务器是被用户身份,让服务器识别用户身份。在使用cookie时要注意不可以存放敏感信息。奇异因为cookie存储有限(4k),不能存储过多的内容;再者浏览器通常只允许一个站点最多存放20个cookie。

HttpSession:在所有的会话跟踪技术中,HttpSession对象是最强大也是功能最多的。当一个用户第一次访问摸个网站时会自动创建HttpSession,每个用户可以访问他自己的HttpSession。可以通过HttpServletRequest对象的getSession()方法获得HttpSession(setAttribute()|getAttribute())。HttpSession不用与上述三种方法,HttpSession放在内存中,因此不可以放过大的对象放在里面,会影响性能。添加到session的对象最好实现了Serializable借口,这样可以序列化到文件中。

参考(copy from)[https://yq.aliyun.com/articles/109967?spm=a2c4e.11155435.0.0.21cf3a573V5jlr]

目录

[TOC]来生成目录:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值