javaWeb的总结

一:先说一下Servlet中的域对象

Servlet中的域对象有三个分别是ServletContext,request,session

request

request是表示一个请求,只要发出一个请求就会创建一个request域对象,request只在当前请求域中有效。
用处:常用于服务器间同一请求不同页面之间的参数传递,常应用于表单的控件的值传递
常用方法request.setAttribute(),request.getAttribute(),request.getcontextPath()获取当前项目名,可以解决相对路径的问题和Struts2中的redirect用法类似,request.getParameterMap()获取表单传递过来的所有的数据

session

服务器会为每个会话创建一个session对象,所以session中的数据可供当前会话中所有servlet共享。
会话:用户打开浏览器会话开始,直到关闭浏览器会话才会结束。一次会话期间只会创建一个session对象。session有专门的sessionID存在于浏览器中,可以查看。

session的生命周期

范围:多次请求(一次会话)
创建:服务器第一次调用getSession()方法,session被创建
销毁:三种方式:
1.session过期,默认时间是30分钟
2.非正常关闭服务器(正常关闭服务器会序列化到硬盘)
3.手动调用session.invalidate()方法
第一次访问Servlet创建session吗?
不创建,因为没有调用getSession()方法
第一次访问JSP创建session吗?
创建,以为session是JSP的九大内置对象中的一个,一个JSP会被翻译成一个Servlet,在编译过程中,会调用getSession()方法
第一次访问html创建session吗?
不创建…

ServletContext

作用范围:所有的用户都可以取得此信息,此信息在整个服务器上被保留。Application属性范围值,只要设置一次,则所有的网页窗口都可以取得数据。ServletContext在服务器启动时创建,在服务器关闭时销毁,一个JavaWeb应用只创建一个ServletContext对象,所有的客户端在访问服务器时都共享同一个ServletContext对象;ServletContext对象一般用于在多个客户端间共享数据时使用;获取ServletContext对象的方法:直接通过this.getServletContext()就能直接获取到.

二:Servlet生命周期

Servlet生命周期分为三个阶段:
1.初始化阶段,调用init()方法
2.响应客户请求,调用servide()方法
3.销毁阶段,调用destroy()方法
在启动服务器的时候 Servlet就会被装载,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。

Servlet原理

Servlet创建阶段:
 首先简单解释一下Servlet接收和响应客户请求的过程,首先客户发送一个请求,Servlet是调用service()方法对请求进行响应的,通过源代码可见,service()方法中对请求的方式进行了匹配,选择调用doGet,doPost等这些方法,然后再进入对应的方法中调用逻辑层的方法,实现对客户的响应。在Servlet接口和GenericServlet中是没有doGet,doPost等等这些方法的,HttpServlet中定义了这些方法,但是都是返回error信息,所以,我们每次定义一个Servlet的时候,都必须实现doGet或doPost等这些方法。

  每一个自定义的Servlet都必须实现Servlet的接口,Servlet接口中定义了五个方法,其中比较重要的三个方法涉及到Servlet的生命周期,分别是上文提到的init(),service(),destroy()方法。GenericServlet是一个通用的,不特定于任何协议的Servlet,它实现了Servlet接口。而HttpServlet继承于GenericServlet,因此HttpServlet也实现了Servlet接口。所以我们定义Servlet的时候只需要继承HttpServlet即可。
  
Servlet响应请求阶段:
  当用户发送一个请求的时候,Servlet容器会创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后调用Servlet的service方法。service方法从ServletRequest对象获得客户请求信息,处理该请求,并通过ServletResponse对象向客户返回响应信息。
  
Servlet销毁阶段:
 当WEB应用被终止,或Servlet容器终止运行,或Servlet容器重新装载Servlet新实例时,Servlet容器会先调用Servlet的destroy()方法,在destroy()方法中可以释放掉Servlet所占用的资源。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值