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
- Servlet
- servlet
- Servlet
- servlet
- Servlet
- servlet
- servlet
- Servlet
- Servlet
- servlet
- Servlet
- servlet
- servlet
- servlet
- Servlet
- servlet
- servlet
- servlet
- fgyhu
- Matlab编程 入门(四)
- Unable to locate Spring NamespaceHandler for XML schema namespace[http://www.springframework.org/sch
- hdu2032
- 【jQuery Mobile】学习jQuery Mobile 第一弹
- Servlet
- HTTP协议历史演进的详细介绍
- Linux升级python3.x安装pip
- Struts1的logic:iterate标签
- vim编辑器 批量注释与反注释
- 多个Node.js版本之间切换
- iOS Universal Link 开发
- hdu2043
- css 初始化