一、使用注解创建Servlet
现在创建Servlet存在的问题
- 每一次都要去实现Servlet接口,都要去做配置
从Servlet3.0开始可以直接使用注解的形式来去使用Servlet
创建Servlet:
在创建好的Servlet上面有会有一个@WebServlet("/myServlet")
- 这个就是一个注解
- 就相当于在代码上添加了一个小插件。
- 贴上这个注解后,就不用再去做配置文件,会在内部自动帮你去做
- 括号当中的内容就是url-patten的内容,要在地址栏当中path后面跟的内容
使用注解时的注意点
在web.xml当中要有一个配置:metadata-complete
- 是否扫描类当中定义的注解
- 当为true的时候不扫描,为false扫描
- 要使用注解就要把此值设置为false
二、HttpServlet
直接new的Servlet它是一个HttpServlet,它是GenericServlet的子类
public abstract class HttpServlet extends GenericServlet
GenericServlet实现了Servlet接口
public abstract class GenericServlet implements Servlet, ServletConfig,java.io.Serializable
HttpServlet是专门负责处理http请求与响应的,以后创建Servlet时,直接使用httpServlet。
HttpServlet方法
service
- 每一次发送请求的时候就会调用
- 当写了service就会不再调用 get或post
doGet
- 当发送get请求时调用
doPost
- 当发送post请求的时候调用
内部方法调用过程
- 当接收到一个请求时, tomcat就会找对应的service方法
- 如果当中servlet当中没有存在service方法,就会到它的父类(HttpServlet)当中去找。
- 在父类当中找到service是参数为ServletRequest,在内部会把参数转为httpServlet
- 转换完毕后会再继续调用参数为httpServletRequest的service方法
- 在此方法当中会获取参数的类型,根据不同的参数类型再去调用不同的方法