java web之servlet入门

Servlet处理Http请求的过程:
1、接收http请求
2、获取请求信息,包括请求参数
3、完成具体的业务功能
4、跳转到其他的组件(重定向和请求转发)
5、生成Http响应

HttpServlet:
继承自GenericServlet,实现了对于Http协议的封装,用于处理客户端的http请求及响应。

主要方法:
init() 初始化时调用
doGet()处理前端页面的http get请求
doPost( ) 处理前端页面的 http post请求

Servlet的编写步骤:
1、创建web工程
2、加入jar包
3、src创建Servlet类,继承HttpServlet
4、在自定义的servlet类中重写doGet或者doPost方法,实现业务逻辑
5、需在web.xml配置文件中配置该servlet
1)servlet的声明
2)servlet的url映射

Servlet的配置方式:
web.xml中配置(各个版本都支持)
1、servlet的声明
< servlet>标签,常用的子标签
< servlet-name> 指定servlet的名字,可以自定义,但一般与类名相同
< servlet-class>指定servlet对应的实现类,使用全限定类名(包名.类名)
< init-param>用于配置该servlet的初始化参数,由以下两个子标签指定参数名和参数值
< param-name> 参数名
< param-value> 参数值
< load-on-startup> 用于配置该servlet的加载顺序,如果是0或者大于0 ,则容器启动时就加载。如果不配置,默认客户端第一次请求该servlet的时候才加载。
2、url的映射
< servlet-mapping> 配置servlet的url映射,常用的子标签
< servlet-name> 指定要映射的servlet的名字,必须是上面第一步servlet声明后的名字。
< url-pattern> 指定servlet映射的url路径,以"/"开头,可以自定义,但一般用servlet的类名

注解配置:(servlet3.0及之后才支持)
使用@WebServlet进行注解配置,配置属性如下:

name 指定servlet的名
urlPatterns 指定一组servlet的url匹配项。
value 等价于urlPatterns,但两者不能同时出现
initParams用于定义初始化参数,结合@WebInitParam来定义。
loadOnStartup 同web.xml中的< load-on-startup>标签
asyncSupported 是否支持异步,默认为false
@WebServlet(name=“HelloServlet”,
urlPatterns={"/HelloServlet"},
loadOnStartup=0)

两种servlet配置方式的优缺点:
注解配置需要servlet3.0及以上版本,Tomcat7及以上,web.xml的配置,则不要求版本
注解配置,代码量少,可读性强,便于理解,但是,如果项目中有大量的servlet,不便于查找和修改。
web.xml的配置,集中管理所有的servlet便于查找和修改,但可读性差。

Servlet的生命周期:
分为四个阶段:
1、实例化
tomcat容器加载并实例化servlet按照如下规则:
如果配置了loadonStartup项,且值大于等于0 ,则容器一启动时就加载并实例化该servlet
如果没有上述配置,则容器在第一次请求该servlet的时候加载并实例化
2、初始化
调用init方法,开发者可以在此阶段获取一些初始化参数等操作
3、处理请求
通过doGet或者doPost处理请求及响应
4、销毁
容器关闭或者需要让出资源时,会调用destroy方法,销毁servlet的实例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章