jsp笔记

  1.   Servlet的生命周期:

 

    Servlet部署在容器中,其生命周期由容器来管理,可以概括为一下5个阶段

1.加载:当web客户端请求Servlet服务或web服务器启动时,容器环境加载一个Servlet类。

2.实例化:容器环境根据客户请求创建一个Servlet对象实例。

3.初始化:容器环境调用Servlet的init()方法进行初始化,该方法以一个ServletConfig类型的应用作为参数,该参数可让Servlet从部署描述文件web.xml中读取一些“键对值”形式的参数值,以初始化这些数据。Servlet初始化时也可以从数据库中读取初始化数据,建立JDBC连接,或者创建其他有价值的资源信息引用。

4.服务:容器环境利用HttpServletRequset和HttpServletResponse对象,封装从web客户端接受到的HTTP请求和Servlet生成的响应,将这两个对象以参数的形式传给service()方法。

5.销毁:当web服务器或容器关闭时,会自动调用servlet的destroy()方法关闭所有打开的资源,并进行一些关闭前的处理

       Servlet生命周期整个过程:

   1:不存在的Servlet实例——2:容器装载Servelt——3:创建Servlet实例——4:初始化Servlet调用init()方法——

5:调用service()方法对应Servlet的service()方法——6:结束Servlet调用destory()方法

 

 

 应用Servlet API

 

Servlet API中定义了一整套的借口和类:

    javax.servlet —— [接口     类]

              接口:{ServletConfig、ServletContext、ServletResponse、ServletRequset、Servlet}

 

               类:{ServletOutputStream、ServletInputStream、GenericServlet} 

 

使用Servlet API的原则

  1. 重写doGet()方法来处理Get请求
  2. 重写doPost()方法来处理post请求
  3. 如果需要在Servlet实例化中进行初始化工作,可以重写init()方法
  4. 如果需要在Servlet被释放时进行资源清理工作,可以重写destort()方法   

HttpServletRequest接口

    HttpServletRequest接口代表客户请求。容器在调用Servlet的doGet()和doPost()方法时,会创建一个HttpServletRequest接口的实例,该实例作为参数传给doGet()或doPost()方法

 

     HttpServletRequest所提供的方法如下:    

  1. publick String getParameter(String name)                        获取指定名称的参数值
  2. public String[] getParamnterValues(String name)            获取指定名称参数的所有值数组。它使用与一个参数名对应多个值的情况,如页面表单中的复选框。
  3. public java.util.Enumeration getParameterNames()         返回一个包含请求信息的所有参数名的Enumeration对象。通过编辑Enumeration对象,可以获取请求中所有的参数
  4. public java.util.Map getParameterMap()                          返回所有参数的一个Map对象。其中key代表参数名,value代表参数值。

HttpServletResponse接口:

    HttpServletResponse接口代表向客户端发送的响应。容器在调用Servlet的doGet()和doPost()方法时,同样会创建一个HttpServletResponse接口的实例,作为参数传给doGet()或doPost()方法。

   

    HttpServletResponse接口提供的方法:

  1. public void addCookie(Cookie arg0)                    在响应中加入cookie对象
  2. addHeader(String arg0,String arg1)                    加入对应的名称的字符串头信息
  3. public String encodeURL(String arg0)                  对特定的URL进行加密
  4. public sendRedirect(String arg0)                         传递临时响应,响应的地址由location指定

使用request对象属性传递数据

    在Servlet类的请求处理方法中,可以获取客户端提交的参数数据,也可以棉鞋逻辑代码,对数据请求进行处理并作出响应。

   

    业务需求:

  1. 将处理的结果传给其他页面,如jsp页面或其他的Servlet。
  2. 一个Servlet类无法处理独立处理客户请求,处理部分数据后需要传给另一个Servlet继续处理

    两种情况的共同点在于web程序处理流程改变时,将前一个处理数据继续处理传递给下一个资源。这种情况下会使用request属性传递数据,

   

        客户__请求Servlet______ Servlet处理_____传递结果,转发请求__________{1、HTML静态页面  2、另一个Servlet  3、动态页面(jsp)}

使用request属性传递数据的步骤:

  1. 使用HttpServleRequset接口的setAttribute()方法,把数据存入requset请求域中。  ——语法——requset.setAttribute(String name, Object obj)
  2. 获取一个RequestDispatcher转发实例,转发到目标资源。

重定向与转发

   重定向与转发都是用于实现web应用程序中资源的跳转

    1、使用HttpServletResponse对象的sendRedirect()方法可以实现重定向                —— 语法:public sendRedirect (String arg0)

    2、转发

    3、重定向与转发的区别

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值