servlet知识汇总(二)

11 篇文章 0 订阅

1.定义:Sevlet(服务器端小程序)是使用java语言编写的服务器端程序,可以向jsp一样生成动态web页面。Sevlet主要运行在服务器端,并用服务器调用执行,是一种按照servlet标准开发的类。

2.Servlet带给开发人员的最大的好处是:它可以处理客户端传来的HTTP请求,并返回一个响应。

3.Servlet将按照如下步骤进行处理:

(1)客户端(很可能是web浏览器)通过Http提出请求

(2)Web服务器接收请求并将其发给Servlet。

(3)Servlet程序将接收该http请求并执行某种处理。

(4)Servlet会将处理后的结果向web服务器返回应答。

(5)Web服务器将从Servlet收到的应答发回给客户端。

4.在整个程序中最重要的就是Servlet接口,在此接口下定义了GenericSevlet的子类但一般不会直接继承此类,而是根据所使用的协议选择GenericServlet的子类继承。

HttpServeletRequest和HttpServeletResponse,用来接收和回应用户的请求。

5.Servlet的生命周期全过程:

(1)加载:把servlet.class文件load进来放到web容器里。

(2)实例化:new 一个servlet对象出来。

(3)初始化:web容器调用init()方法初始化这个对象。

初始化的目的是为了让Servlet在处理客户端请求前完成一些初始化的工作,如建立数据库的连接、读取资源文件信息等。

(4)处理服务:servlet将调用service方法,对于httpServlet将会调用doget()方法或者doPost()方法进行处理。

(5)销毁:当web容器关闭时或者检测到要从容器被删除时,会自动调用destroy方法,以便让该实例释放掉所占用的内存。

对应的代码:

(1)publicTestLifeCircleServlet() { }

(2)public void init(ServletConfig config) throwsServletException {}

 (3)public void doGet(HttpServletRequestrequest, HttpServletResponse response)throws ServletException, IOException {}

 理解servelt的生命周期测试代码总结: 

(1)测试这几个方法先后的执行顺序,经过测试先构建对象 

(2)只是构建一个对象,不管你访问多少次,只是由这一个对象提供服务,在初始化,最后调用doGet方法 

(3)servlet不管你访问多少次,只构建一个对象,访问几次调用几次doGet()方法,init方法只执行一次,第一次初始化的时候执行

(4)当webapp退出时,会调用destroy方法,也就是说servlet对象真正的从内存中消失时,才会调用destroy方法

(5)ServletConfig中的config对象可以读取web.xml中的初始化参数,得到servlet的配置信息

(6)怎样在浏览器中对servlet程序进行访问:

   <servlet> <servlet-name>hello</servlet-name>

   <servlet-class>hello</servlet-class>

   </servlet>

   <servlet-mapping>

   <servlet-name>hello</servlet-name>

    <url-pattern>/hello</url-pattern>

  </servlet-mapping>

在浏览器输入:http://localhost:8080/Filter/hello对servlet进行访问

6.Servlet跳转:

1.客户端跳转:在Servlet中要想进行客户端跳转,(地址栏会发生变化)直接使用HttpServletResponse接口的sendRedirect()方法即可。(但是要注意的是,此跳转只能传递session范围的属性,而无法传递request范围的属性,这是因为request属性范围只有在服务器端跳转中才可以使用)。

2.服务器端跳转:在Servlet中没有像JSP中的<jsp:forward>指令,所以如果要想执行服务器端跳转,就必须依靠RequestDispatcher接口完成。

提供两方法:forword()和include()可完成跳转实现。

但是还不够:如果要想使用此接口还要使用ServletRequest接口进行方法的实例化。

ServletRequest接口进行方法的实例化:Public RequestDispatchergetRequestDispatcher(String path){}

服务器端跳转之后,页面路径不会发生改变,而且此时可以在跳转后的JSP文件中接收到session及request范围的属性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值