Servlet

1什么是Servlet

  • Servlet是由Sun公司开发动态Web的一门技术。

  • Sun在这些API中,提供了一个接口,叫做Servlet。如果你想开发一个Servlet项目,只需要一下两个步骤:

​ 1.编写一个类,实现Servlet接口。

​ 2.把开发好的类部署到Web服务器中。

通常,把实现了Servlet接口的Java程序,称作Servlet。

Hello Servlet

Servlet接口在Sun公司有两个默认的实现类,HttpServlet,GenericServlet

1.构建一个普通的Maven项目,删除掉里面的src目录,以后的学习可以在这样一个“干净”的项目中创建Model,这个空的工程就是Maven的主工程。

2.关于Maven父子工程的理解:

父项目中会出现:

<modules>
    <module>servlet-01</module>
</modules>

子项目中会出现:

<parent>
    <artifactId>javaweb-02-servlet</artifactId>
    <groupId>com.edwin</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

父项目中的java,Jar包,子项目可以直接使用。等价于:

son extends father;

3.Maven环境优化:

​ (1)修改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_4_0.xsd"
         version="4.0"
         metadata-complete="true">
</web-app>

​ (2)将Maven构建为完整的结构。

4.编写一个Servlet程序:

​ (1)编写一个不同class类。

​ (2)实现Servlet接口,这里我们直接继承HttpServlet类。

package com.edwin.servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
//此处再子项目中,是没有这个依赖的,但是在父项目中有这个依赖,可以直接用。
/**
 * @author Edwin D
 * @date 2020.5.31 下午 10:38
 */
public class HelloServlet extends HttpServlet {

//    由于get或者post只是请求实现的不同方式,可以相互调用,业务逻辑都一样。

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//      ServletOutputStream outputStream = resp.getOutputStream();
//        响应流。
        PrintWriter writer = resp.getWriter();
        writer.println("Hello,World!");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

5.编写Servlet的映射

为什么需要映射?

  • 我们写的是Java应用程序,而我们的项目是用浏览器连接访问的。而浏览器是需要连接Web服务器,所以我们需要在Web服务器中注册我们写的Servlet。同时需要有一个浏览器能够访问的路径。
<?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_4_0.xsd"
         version="4.0"
         metadata-complete="true">
    <!--注册Servlet-->
    <servlet>
        <servlet-name>Hello</servlet-name>
        <servlet-class>com.edwin.servlet.HelloServlet</servlet-class>
    </servlet>
    <!--Servlet请求路径-->
    <servlet-mapping>
        <servlet-name>Hello</servlet-name>
        <url-pattern>/Hello</url-pattern>
    </servlet-mapping>
</web-app>

6.配置Tomcat

注意配置项目的发布路径。

7.启动测试:

点击Tomcat旁边的小三角,即可。

在这里插入图片描述

然后:

在这里插入图片描述
更改路径后:

在这里插入图片描述

Servlet调用关系:

在这里插入图片描述

参考文献

《【狂神说Java】JavaWeb入门到实战》

视频连接

2020.06.01

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐