DRP——Servlet(一)

Servlet

      Servlet是用java语言编写的程序,执行在Webserver上,用来处理来自client的请求;通常会把处理的结果以HTML的形式返回,在client形成动态网页。事实上能够理解成一个中间层。负责连接前后。用三层理解的话相当于是业务逻辑层。

     那么,Servlet有什么长处呢?Servlet执行在server中。能够扩展server的功能。能够和其它资源交互,从而生成返回client响应的内容,由于是用java编写的,所以能够跨平台;Servlet也非常安全,由于訪问Servlet的唯一途径就是通过server;Servlet使用也非常方便,仅仅要是符合Servlet规范的Servlet容器都能够执行Servlet。比方Tomcat啊等。


  Servlet体系结构:

    

 

 Servlet的生命周期:

1.创建Servlet对象。通过server反射机制创建Servlet对象,第一次请求时才会创建。(默认)

2.调用Servlet对象的init()方法,初始化Servlet的信息。init()方法仅仅会在创建后被调用一次

3.响应请求,调用service()或者是doGet(),doPost()方法来处理请求。这些方法是执行的在多线程状态下的。

4.在长时间没有被调用或者是server关闭时,会调用destroy()方法来销毁Servlet对象。


Servlet容器

      事实上,Servlet本身就是普通的java类。在须要的时候被实例化,在不须要的时候被销毁。而Servlet的实例化和销毁工作谁来负责呢?Servlet容器来完毕。所以用要Servlet,则Servlet容器不可缺少。ServletServlet容器内执行。Servlet容器负责调度Servlet,并控制Servlet的生命周期。我们经常使用的有Tomcat等。。。

      以下分析一下Servlet容器调用Servlet的流程;首先client使用浏览器提交对Servlet的调用的GetPost请求,server接到请求后,假设Servlet是第一次调用就实例化这个Servlet。之后server调用Servletservice()方法,Servlet产生动态回复内容;server发送回复内容给client的浏览器。




 

配置文件

        要想容器能正确识别Servlet。须要配置web.xml文件,以下我们看一下怎样配置:

        一般格式:        

    

<servlet>
 <servlet-name>HelloWorld</servlet-name>
 <servlet-class>test.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
 <servlet-name>HelloWorld</servlet-name>
 <url-pattern>/hello</url-pattern>
</servlet-mapping>

 

      <servlet>标签内的nameServlet的名称;classServlet的路径;<Servlet-mapping>标签帮助找到Servleturl-pattern是訪问时的路径。Servlet-mappingServlet标签下的servlet-name要一致。

      当然除了主要的配置。还能够进行其它配置,比方优先级、显示名称等等。

 

比較:

     大家看到servlet能想到.NET中的什么呢?没错。好像是不太能想到什么。就勉强联想到一般处理程序吧。

当然他们有非常多不同的地方,但还是有类似的地方,事实上Servlet相当于是.NET中的一个详细的handler。能够对指定的请求进行处理。一般处理程序实现IHandler接口。

总结:

     Servlet事实上就是执行在server端的小应用程序;Servlet容器负责调度Servlet,并控制着他们的生命周期。一般通过继承HttpServlet的方式来实现Servlet。依据client请求的方式,仅仅需重写doGetdoPost方法就可以,假设是Get提交须要在Servlet中重写doGet方法,假设是Post提交须要重写doPost方法;要使容器正确识别Servlet,则必须填写配置文件web.xml(tomcat7.0支持Servlet3.0注解定义,无需配置web.xml)


ps:不足之处,敬请指正~~~

原文地址:https://www.cnblogs.com/zfyouxi/p/5147186.html