Servlet

来源:互联网 发布:西门子编程电缆有几种 编辑:程序博客网 时间:2024/06/07 04:52

Servlet介绍

         Servlet是运行在服务器上的java小程序,简单说,它就是
         一个java类.我们要使用Servlet需要导入javax.servlet
         的API;


Servlet详解


Servlet是一个资源,是一个java类,是运算在服务器上的;
Sun对于servlet定义,它就是一个javax.servlet.Servlet接口;

Servlet接口下有一个实现类叫GenericServlet,GenericServlet有
一个子类HttpServlet;

在servlet接口中定义了一个方法service,它的主要作用是处理来自浏览器的
请求操作;但是我们创建Serclet时,是继承了HttpServlet,重写了一个doGet
方法;

在service方法的重载的方法中,对请求方式进行判断,如果是get就会调用doGet方法,
如果是post就会调用doPost方法;




总结:在Servlet接口中定义的service方法是用于处理请求的,而在其实现类HttpServlet中又进行细分,针对于Post会执行doPost方法,如果是get请求,执行的是doGet方法;

通过上述分析,我们知道要创建一个Servlet,其实可以有三种方式:

1,implements Servlet接口

2,extends GenericServlet类

3,extends HttpServlet类

在开发中,一般应用比较多的是使用ExtendsHttpServlet,优点是它是与http协议相关的,简单说,它封装了http协议相关的操作;


Servlet的生命周期


在javax.servlet.Servlet接口中定义了三个方法,initservicedestroy,它们就是servlet的的生命周期的方法;

init(ServletConfig config)

service(ServletRequest req, ServletResponse res)

destroy()

1,第一次访问servlet, servlet会被创建,并将servlet对象常驻内存,调用init方法进行初始化操作,init方法执行一 次;

2,开启一个线程,调用service方法,用来处理来自浏览器的请求,以后都是开启一个线程来处理浏览器端的请求;

3,当tomcat服务器正常关闭时,会调用destroy方法将servlet销毁;

注意:servlet是线程不安全的,也就是说,不建议在servlet中创建成员变量;



Servlet配置


servlet声明:

<servlet>
<servlet-name>servlet名称<servlet-name>
<servlet-class>servlet类全名</servlet-class>
</servlet>

servlet映射:

<servlet-mapping>
<servlet-name>servlet名称</servlet-name>
<url-pattern>资源路径</url-pattern>
</servlet-mapping>

url-pattern它就是用于确定访问servlet的一个路径;

一个servlet可以有多个<servlet-mapping>与其对应;

url的书写规范:

1,完全匹配要求以"/"开始

2,目录匹配要求以"/"开始,以*结束

3,扩展名匹配要求不能以"/"开始,以*.xxx结束;

注意:精确匹配的优先级最高

缺省servlet


当我们创建一个servlet时,如果它的url-pattern的配置为"/",这时
这个servlet就是一个缺省的servlet;

配置缺省的servlet,它的作用就是处理其他的servlet处理不了的请求;

我们在访问一个服务器的html页面时,其实就是通过缺省的servlet帮助我们将
其内容响应到浏览器端;


load-on-startup配置


如果我们配置了它,可以让servlet跟随服务器的启动而启动;

对于load-on-startup它的可以配置的值有10个,1代表优先级最高,
数值越大,优先级越低;

开发中,我们可以让servlet跟随服务器的启动而启动,在没有访问前
进行预加载操作;
0 0
原创粉丝点击