Servlet概念
Servlet就是一个接口,定义了被服务器(tomcat)识别的规则,要实现Servlet我们需要实现它。
Servlet执行原理:
浏览器请求————》web.xml中寻找Servlet————》通过servlet—class标签找到类————》
通过反射创建实例————》调用Service方法;
Servlet 的生命周期(面试)
init方法默认情况下Servlet第一次访问时被创建时调用(单例),也可以在web.xml中使用标签设置,
该标签可以有负数或正数(或0)两个值,当为负数时,servlet为单例模式中的懒汉式,反之则为饿汉式。
servic方法每次访问都会被执行,destroy方法在Servlet被销毁前执行;
Servlet的注解
在Servlet3.0以上的版本可以支持注解配置了,这样就可以丢弃复杂的web.xml使用更简单的注解来实现Servlet的定位了。
在Servlet3.0以上的版本可以使用@WebServlet(“资源路径”)来访问Servlet了,下面写一个小例子方便理解
@WebServlet(“/dome”)
public void MyServletDome implement Servlet{
public void service(){
System.out.println("注解开发");
}
}
这样就可以不用配置Xml而直接访问Servlet了。如果一个Servlet有多个访问路径还可以用@WebServlet({“路径1”,“路径2”,“路径3”})这样的方法来配置,
当然也支持目录结构的路径,如@WebServlet(“/myServlet/dome”)
Servlet的体系结构
Servlet--接口
||
GenericServlet--抽象类
||
HttpServlet--抽象类
GenericServlet:这个类将Servlet类中除service方法外的其他方法进行了空实现,将来如果我们的类继承这个类就可以只实现service方法即可;
HTTPServlet:这个类是我们一般继承的类,他对http协议进行了封装,简化了操作;