Servlet简单了解
Servlet常用的两种配置方式
XML配置
实现步骤
- 新建一个JavaEE项目
- 定义一个类实现Servlet接口
- 实现接口中的所有抽象方法
- web.xml文件中去配置servlet
代码展示
-
首先需要创建一个JavaEE项目,创建项目的步骤很简单,这里不做详细展示,重点看下面
-
ServletDemo类
// Servlet的生命周期 public class ServletDemo implements Servlet { /** * 初始化方法init * servlet对象被创建后,只执行一次 * @param servletConfig * @throws ServletException */ @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("servlet被创建,servlet单例的,只会被创建一次,init方法只会被执行一次"); } /** * 获取ServletConfig这个对象 * 获取servlet的配置信息 * @return */ @Override public ServletConfig getServletConfig() { return null; } /** * 提供服务的方法 * 用来接收请求,处理请求,响应请求,这个方法每一次访问都会被执行一次 * @param servletRequest * @param servletResponse * @throws ServletException * @throws IOException */ @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("Hello Servlet....."); } /** * 获取servlet的信息 * @return */ @Override public String getServletInfo() { return null; } /** * 销毁方法 * 在服务器正常关闭之前servlet被销毁之前执行 */ @Override public void destroy() { System.out.println("这是servlet被销毁之前(|服务器被正常关闭之前)交代的遗言"); } }
-
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <!-- servlet的配置 --> <servlet> <!-- 自拟servlet名称 --> <servlet-name>demo1</servlet-name> <!-- 指定servlet的全类名 --> <servlet-class>com.csdn.servlet.ServletDemo</servlet-class> <!-- 指定servlet的创建时机 负数就代表第一次访问时被创建 正数就代表服务器启动时被创建 --> <load-on-startup>5</load-on-startup> </servlet> <!-- servlet的映射 --> <servlet-mapping> <!--这里的name要和servlet里面的name遥相呼应 --> <servlet-name>demo1</servlet-name> <!-- 指定servlet的访问路径,也就是servlet资源资源路径 --> <url-pattern>/demo1</url-pattern> </servlet-mapping> </web-app>
以上步骤都完成后,开启服务器,地址栏输入:
http://localhost:8080/你设置的虚拟目录/servlet的资源路径
我这里的虚拟目录是
/day0304_servlet
,我的servlet的资源路径是/demo1
注解配置
实现步骤
- 创建一个JavaEE项目
- 定义一个类实现Servlet接口
- 实现接口中的所有抽象方法
- 在类上加上一个@WebServlet("\servlet资源路径")即可
代码展示
-
首先需要创建一个JavaEE项目,创建项目的步骤很简单,这里不做详细展示,重点看下面
-
ServletDemo类
// Servlet的生命周期 @WebServlet("/demo1") public class ServletDemo implements Servlet { /** * 初始化方法init * servlet对象被创建后,只执行一次 * @param servletConfig * @throws ServletException */ @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("servlet被创建,servlet单例的,只会被创建一次,init方法只会被执行一次"); } /** * 获取ServletConfig这个对象 * 获取servlet的配置信息 * @return */ @Override public ServletConfig getServletConfig() { return null; } /** * 提供服务的方法 * 用来接收请求,处理请求,响应请求,这个方法每一次访问都会被执行一次 * @param servletRequest * @param servletResponse * @throws ServletException * @throws IOException */ @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("Hello Servlet....."); } /** * 获取servlet的信息 * @return */ @Override public String getServletInfo() { return null; } /** * 销毁方法 * 在服务器正常关闭之前servlet被销毁之前执行 */ @Override public void destroy() { System.out.println("这是servlet被销毁之前(|服务器被正常关闭之前)交代的遗言"); } }
以上步骤都完成后,开启服务器,地址栏输入:
http://localhost:8080/你设置的虚拟目录/servlet的资源路径
我这里的虚拟目录是
/day0302_servlet_anno
,我的servlet的资源路径是/demo1
了解:当然除以上两种方式外,还有web.xml和注解并存的现象
两者区别
答:区别:使用xml方式配置比较麻烦,若有很多个servlet,都要单独地到web.xml文件中进行配置,但使用这个@WebServlet注解后就大大地简化了开发,省略掉了一些繁琐的杂事