- 现在创建 Servlet 存在的问题
- 每一次都要去实现
Servlet
接口
- 都要去
web.xml
中做配置
- 从
Servlet3.0
开始可以直接使用 注解
的形式来去使用 Servlet
- 创建
Servlet
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020231528054-902429241.png)
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020231600626-1024405863.png)
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020231650356-1173976055.png)
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020231709670-2046476251.png)
- 在创建好的 Servlet上面有会有一个
@WebServlet("/myServlet")
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020232903320-2013295342.png)
- 这个就是一个注解
- 就相当于在代码上添加了一个小插件
- 贴上这个注解后,就不用再去
web.xml
中做配置,会在内部自动帮你去做
- 括号当中的内容就是
url-patten
的内容,要在地址栏当中 path
后面跟的内容
使用注解时的注意点
- 在
web.xml
当中要有一个配置
- metadata-complete
- 是否扫描类当中定义的注解
- 值为
true
和 false
- 当为 true 的时候不扫描,为 false 的时候才扫描
- 要使用注解就要把此值设置为
false
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020232306989-749622849.png)
HttpServlet
- 直接 new 的也就是创建的 Servlet 它是一个 HttpServlet
- 它是
GenericServlet
的子类
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020233157145-1040995929.png)
GenericServlet
实现了 Servlet
接口
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020233218669-382329675.png)
HttpServlet
是专门负责处理 Http 请求与响应的
- 以后创建 Servlet 时,直接使用 HttpServlet
HttpServlet的相关方法
service
- 每一次发送请求的时候就会调用该方法
- 当写了
service
就会不再调用 get
或 post
方法了
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020234443997-1029321068.png)
doGet
doPost
HttpServlet内部方法调用过程
- 当接收到一个请求时,tomcat 就会找对应的 service 方法
- 如果 servlet 当中没有存在 service 方法,就会到它的父类当中去找
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020234821700-1897875697.png)
- 在父类当中找到 service 是参数为 ServletRequest,会在内部把参数转为
HttpServletRequest
- 转换完毕后会再继续调用参数为
HttpServletRequest
的 service
方法
![](https://img2020.cnblogs.com/blog/2105804/202010/2105804-20201020235117443-1747868125.png)
- 在此方法当中会获取请求的的类型,根据不同的类型再去调用不同的方法
posted @
2020-10-20 23:53
BNTang
阅读(
97)
评论()
编辑
收藏
举报