servlet概念
本质:一个javaEE的接口,一个运行在服务器上的程序,定义了访问tomcat识别的规则,
如果我们需要程序被服务器识别,就需要自定义一个类,实现servlet接口,复写方法。
入门:
1.在创建项目时先配置tomcat
2.创建继承了servlet接口的类
public class ServletDom1 implements Servlet {}
3.在wb.xml中配置
(如果出现启动时异常,有可能是<url-pattern>/demo1</url-pattern>少了斜杠,
或者是tomcat配置错误)
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>cn.itcast.web.servlet.ServletDom1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
原理
1.浏览器通过地址访问 <url-pattern>/demo1</url-pattern>
2.<url-pattern>通过 <servlet-name>demo1</servlet-name>
访问到serlvet标签下的<servlet-name>demo1</servlet-name>
3.最后访问到 <servlet-class>cn.itcast.web.servlet.ServletDom1</servlet-class>
4.然后tomcat服务器通过反射解析全类名,找到并加载class字节码文件,创建其对象
调用其方法
生命周期
init():servlet被创建时执行,执行一次,说明servlet是单例对象,一个线程只有一个对象
问: 什么情况下servlet被创建
1.默认情况下,被访问时创建
2.在web.xml中配置servlet创建时机
<load-on-startup>0</load-on-startup>
service():每一次servlet被访问时执行, 执行多次
destroy():服务器被关闭时执行,执行一次
注:在servlet被销毁之前执行,用于释放资源
ServletConfig():获取servlet配置对象
getServletInfo():获取serlvet的信息:版本,作者
serlvet 3.0
好处:可以使用注解配置,不需要web.xml
步骤:
1.创建项目
2.创建类,继承serlvet
3.在类上使用注解@WebServlet(urlPattens=“资源路径”)
@WebServlet(urlPatterns ="/demo2")
public class ServletDom2 implements Servlet {}
serlvet体系结构
serlvet接口
|
GenericServlet抽象类:只将Service()作为抽象方法,其他方法作为空实现
@WebServlet("dome3")
public class ServletDom3 extends GenericServlet {}
|
HttpServlet抽象类:
@WebServlet("/dome4")
public class servletDom4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
serlvet的相关配置
1.urlpartten: Servle访问路径
1.一个Servlet可以定义多个访问路径:@WebServlet({"/dome4","/1","/2"})
2.路径定义规则
2-1./xx
2-2./*,表示最后被访问。
2-2./xx/xx,多层路径,目录结构
2-3. *.do ,代表所有:@WebServlet("*.do")