-
概念
Servlet是sun公司提供的一门用于开发动态web资源的技术。
只要与servlet接口有关的java类,且交给服务器运行,这个类就是servlet类。
方式1: 写一个类,实现Servlet接口 【这个类就是servlet】
方式2: 写一个类,继承HttpServlet 【HttpServlet类也实现servlet接口】
注意:Servlet必须交给服务器运行,不能独立运行。
按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet。
Servlet编程,基于request/response模型。
-
Servlet相关接口
|-- interface Servlet 【servlet原始的接口】
|—interface ServletConfig 【获取servlet在web.xml中配置】
|–abstract class GenericServlet implements Servlet, ServletConfig 【通用servlet】
|-- abstract class HttpServlet extends GenericServlet 用户编写的servlet,只需要继承此类即可。
|-- class MyDeo extends HttpServlet 【Http协议下的servlet开发】
现在的servlet开发只支持http协议下的servlet开发。
-
Servlet执行过程(路径匹配过程)
package cn.web001;
public class HttpDemo1Servlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 向 浏览器输出数据
PrintWriter writer = arg1.getWriter();
writer.write("i am interface implement servlet");
}
}
web.xml
<servlet>
<servlet-name>Demo1Servlet</servlet-name>
<servlet-class>cn.web001.InterfaceServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Demo1Servlet</servlet-name>
<url-pattern>/first</url-pattern>
</servlet-mapping>
访问地址:
http://localhost:8080/web001/two
服务器,解析url:
Localhost 主机
8080 tomcat
/web001 相对于/webapps目录下的/web001项目
/two 匹配web.xml中的配置
1.找所有的配置, 如果没有找到返回404; 找到后,接下来,
2.匹配路径对应的servlet“内部名称”,
3.在根据内部名称,找servlet节点对应的servlet-name
4.最后在找到当前servlet节点配置的servlet字节码全路径
5.(反射创建对象、调用方法)
-
servlet路径映射
精确匹配
方式1:
<servlet-mapping>
<servlet-name>Demo2Servlet</servlet-name>
<url-pattern>/demo2</url-pattern>
<url-pattern>/demo3</url-pattern>
</servlet-mapping>
访问:
http://localhost:8080/day09/demo2 或者
http://localhost:8080/day09/dem