Servlet相关知识的总结

Servlet

Servlet是一种应用于服务器端的java程序,可以生成动态的web页面,servlet运行在服务器端负责加载的,是独立于平台和协议的java应用程序,每一个JSP都被处理成一个servlet

Servlet并不是限制所有使用的协议,但是使用最多的协议是http协议,http协议的特点是每次连接只完成一个请求,其处理过程为:建立连接,发送请求,提供服务,发送响应,关闭连接。

 

Servlet的生命周期、

Servlet运行在servlet容器中,由容器来管理其生命周期,servlet的生命周期主要包括4个过程:

1、加载和实例化

加载和实例化servlet是由servlet容器来实现的,加载servlet之后,容器会通过java的反射机制来创建servlet的实例

2、初始化

servlet的实例创建后,容器会调用servletinit()方法来初始化该servlet对象,初始化的目的是让servlet对在处理客户端请求前先完成一些初始化工作,对于每一个servlet实例,只会调用一次init()方法

3、执行

当客户请求到来后,servlet容器首先针对该请求创建ServletRequestServletResponse两个对象,然后Servlet容器会自动调用Servletservice()方法来响应客户端请求,同时把ServletRequestServlet两个对象传给service()方法,通过ServletRequest对象,servlet实例可以获得客户端的请求信息,处理完请求后,则将相应信息放置在ServletResponse对象中,最后销毁ServletRequestServletResponse对象

注意:在services()方法调用前,init()方法必须已经成功执行

4、清理

servlet实例需要从服务中移除时,容器会调用destroy()方法,让实例释放掉所使用资源,并将实例中的数据保存到持久的存储设备中,之后,servlet实例会被java的垃圾回收器回收

期间初始化和销毁方法只执行一次,service()方法的执行次数取决于servlet被客户端所访问的次数。

 

servlet的常用类及接口

Servlet API包含在两个包中,分别是javax.servletjavax.serv;et.http,servlet接口是所有类型的servlet类必须实现的接口

 

Servlet接口

主要方法:

Init(ServletConfig config) 初始化方法

ServletConfig getServletConfig() 获得servlet的相关配置,

Service(ServletRequest req, ServletResponse res) 用于响应客户端请求

Destroy() 清理方法,释放资源

GenericServlet抽象类

GenericServlet实现类servlet接口,GenericServlet的派生类必须实现service方法

httpServlet抽象类

httpServlet是所有基于webservlet类的根类,httpServlet类重写了Service方法,针对客户端的不同的请求类型提供了几个不同的方法

httpServlet包含主要有以下几个方法:

doPost(httpServletRequest request, httpServletResponse response) throws ServletException 该方法处理和响应http get请求

doGet(httpServletRequest request, httpServletResponse response) throws ServletException 该方法处理和响应http post请求

关键是对doPostdoGet方法的重写,以实现对客户端请求的响应,不能对重写service方法,否则会出错。

ServletRequest接口和ServletResponse接口

当客户端请求到来时,servlet容器会创建一个ServletRequest对象用来封装请求数据,同时会创建一个ServletResponse对象,用来封装响应数据,,这两个对象将作为service方法的参数被传递给ServletServlet可以利用ServletRequest对象获取的客户端的请求数据,利用ServletResponse对象发送最后的响应数据

ServletRequest主要包含的方法:

getAttribute(String name) 返回属性名为name的属性值,若不存在则返回null

Enumeration getAttributeNames() 返回请求中所有的属性的名字,若为空,则返回空枚举集合

removeAttribute(String name) 从请求中移除name属性

setAttribute(String name, Object obj) 在请求中保存属性名为name的属性

。。。。。。。。

String getParameter(String name) 返回请求中name的参数值

Enumeration getParameterNames() 返回请求中所包含参数的所有值,没有则返回空枚举集合

httpServletRequest接口

ServletRequest接口表示Servlet的请求, httpServletRequest是它的子接口,httpServletRequest接口代表客户端的http请求

httpServletRequest包含的主要方法:

getCookies()返回由服务器存放在客户端的cookie数组,使用cookie来区分不同的客户

HttpSession getSession() 获取当前的http会话对象

HttpSession getSession(boolean create) 获取当前的http会话对象,若不存在则自动创建一个新会话

httpServletResponse接口

ServletResponse接口表示Servlet的响应,httpServ;etResponse是它的子接口,httpServletResponse接口代表客户端的http请求

httpServletResponse包含的主要方法:

addCookie(Cookie cookie)向响应的头部加入一个cookie

setStatus(int status) 将响应状态码设定为指定值,只用于不产生错误的响应

httpSession接口

httpSession对象由servlet容器负责创建,httpSession对象中存放客户状态信息,servlet会为httpSession分配一个唯一标识符,即SessionID,作为cookie保存在客户的浏览器中,当客户发出http请求时,servlet容器就可以从httpRequest对象中读取到SessionID,再根据SessionID找到相应的httpSession对象,进而获取客户的状态信息

httpSession接口主要包含的方法:

String getId() 返回sessionID

Invalidate()使当前的session失效,servlet容器会释放掉httpSession对象所占用的资源

setAttribute(String name, Object value)将名值对(name,value)属性保存在httpSession对象中

getAttribute(String name) 根据name参数返回保存在httpSession对象中的属性值

Enumeration getAttributeNames()返回当前httpSession对象中所有的属性名

isNew()判断该session是否是新创建的,新的则返回为true,否为false

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值