Servlet技术流程

Sum公司开发的JavaWeb项目

  1. 编写Servlet接口
  2. 将接口实现到项目中
  3. 发布项目即可使用该接口

    代码流程

  4. 构建Maven项目 无需模板

image.png

  1. 删除src使用模块编程
  2. 导入依赖

Servlet:

  1. <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
  2. <dependency>
  3. <groupId>javax.servlet</groupId>
  4. <artifactId>javax.servlet-api</artifactId>
  5. <version>4.0.1</version>
  6. <scope>provided</scope>
  7. </dependency>

JSP

  1. <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
  2. <dependency>
  3. <groupId>javax.servlet.jsp</groupId>
  4. <artifactId>javax.servlet.jsp-api</artifactId>
  5. <version>2.3.3</version>
  6. <scope>provided</scope>
  7. </dependency>
  1. 添加应用程序模块,使用artitype
  2. 补全子项目模块的结构
  3. 编写业务逻辑

接口结构:业务类 —继承—>GenericServlet—继承—>Servlet

Servlet接口构成

  1. void init(ServletConfig var1) throws ServletException;
  2. // 仅启动一次
  3. ServletConfig getServletConfig();
  4. //获取信息
  5. void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
  6. //服务注册的主要部分
  7. String getServletInfo();
  8. //返回信息
  9. void destroy();
  10. //仅销毁一次

GenericServlet:与协议无关的实现
HttpServlet:Http协议的servlet

  1. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  2. super.doGet(req, resp);
  3. PrintWriter printWriter = resp.getWriter();
  4. printWriter.println("Hello,Servlet");
  5. }

注册servlet的服务到浏览器配置文件

  1. <servlet>
  2. <servlet-name>hello</servlet-name>
  3. <!-- 用于注册一个服务,服务名是hello -->
  4. <servlet-class>cn.prelu.web.Servlet</servlet-class>
  5. <!-- 服务所在的类位置 -->
  6. </servlet>
  7. <servlet-mapping>
  8. <servlet-name>hello</servlet-name>
  9. <!-- 要映射的服务名称 -->
  10. <url-pattern>/hello</url-pattern>
  11. <!-- 映射的地址 -->
  12. </servlet-mapping>

Servlet方法

不应该调用父类的doget方法,否则会出现资源冲突

  1. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  2. System.out.println("Get success");
  3. PrintWriter printWriter = resp.getWriter();
  4. printWriter.println("Hello,Servlet");
  5. }