一.什么是Servelt
A.定义:Server Applet 的缩写,译为“服务器端小程序”,是一种使用 Java 语言来开发动态网站的技术。
B.作用:
b1.Servlet就是一个接口, 定义了Java类被浏览器访问到(tomcat识别)的规则。
b2.将来我们自定义一个类,实现Servlet接口,复写方法即可完成接收用户的请求,处理用户的请求,响应信息给客户端。
C.实际上
c1.在服务器端运行的Java程序,可以接收客户端的请求并做出响应
Servlet可以动态生成HTML内容对客户端进行响应
D.Servlet与JSP的关系
- JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。
- JSP更擅长表现于页面显示,servlet更擅长于逻辑控制。
二.实现servlet的方式
a.方式
实现javax.servlet.Servlet接口;
继承javax.servlet.GenericServlet类;
继承javax.servlet.http.HttpServlet类;(重点)
三.ervlet使用详解
public class HelloServlet implements Servlet { public LoginServlet1() {创建} public void destroy() {销毁} public ServletConfig getServletConfig() { return null; } public String getServletInfo() { return null; } public void init(ServletConfig arg0) {初始化} public void service(ServletRequest arg0, ServletResponse arg1) {处理请求} }
- 给servlet配置servlet路径,需要在web.xml中对servlet进行配置。
<!-- 配置servlet(HelloServlet) --> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.zking.HelloServlet</servlet-class> </servlet> <!-- 映射servlet(HelloServlet) --> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/请求路径</url-pattern> </servlet-mapping>
注意:但凡是改了web.xml文件的内容 务必记得重启服务器再运行!!!
四.Servlet3.0特性
注解的方式进行配置Servlet,不用在web.xml中再进行配置。
- 好处:
- 支持注解配此。可以不要web. xml了。
- 步骤:
- 创建JavaEE项目, 选择Servlet的版本3.0以上,可以不创建web . xml
- 定义一个类,实现Servlet接口
- 复写方法
- 在类上使用@WebServlet注解,进行配说
- @webServlet("资源路径")|
五.Servlet的执行过程
当使用url进行对Tomcat请求时,访问流程如下所示
- 先找到Tomcat
- 根据url中的名称找到具体的项目
- 找到项目下的web.xml,然后寻找url-pattern,看有没有哪个pattern对应url中的值
- 找到servlet-mapping中的servlet-name
- 找到前面注册的servlet-name
- 根据servlet-class中的值找到对应的Servlet类并创建实例
- 执行Servlet中的方法
六.Servlet的生命周期
servlet由我们编写,但对象由服务器来创建,并且由服务器来调用相应的方法。
<!-- 向Tomcat注册Servlet servlet-name:Servlet的名称, servlet-class:具体的路径 --> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>cn.liuwei.servlet.TestServlet</servlet-class> <!-- 设置Servlet的init方法提前执行 --> <load-on-startup>2</load-on-startup> </servlet>
注意:load-on-startup的值越小,提前执行的优先级越高。并且一般不设置为1,因为1是Tomcat的的Servlet的优先级
七.继承javax.servlet.http.HttpServlet类
HttpServlet是Servlet接口的一个实现类,并且它是一个抽象类,servlet.http包中定义了采用HTTP通信协议(一个无状态协议)的HttpServlet类。
创建HttpServlet步骤
- 继承HttpServlet抽象类
- 重写HttpServlet的部分方法,如doGet()或doPost()方法
- 获取HTTP请求信息。通过HttpServletRequest对象来检索HTML表单所提交的数据或URL上的查询字符串
- 生成HTTP响应结果。通过HttpServletResponse对象生成响应结果