一个简单的servlet应用(doGet方法)

第一个 Servlet 程序

1. 创建项目

使用 IDEA 创建一个 Maven 项目.

1.1、File -> New Project

Name:javaservlet2

Location:选择要存放的路径

Language:Java

Build system:Maven

点击Create按钮

1.2、Pom.xml引入依赖

依赖包来源:

    <dependencies>

        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->

        <dependency>

            <groupId>javax.servlet</groupId>

            <artifactId>javax.servlet-api</artifactId>

            <version>3.1.0</version>

            <scope>provided</scope>

        </dependency>

    </dependencies>

Servlet 的版本要和 Tomcat 匹配,如果我们使用 Tomcat 8.5, 那么就需要使用 Servlet 3.1.0,可以在 这个网址(https://tomcat.apache.org/whichversion.html)查询版本对应关系。

1.3、选中javaservlet2,右键选择Module

Name:servlet01

Location:存放路径(默认)

Language:Java(默认)

Build system:Maven(默认)

点击Create按钮

2、创建目录

 2.1、创建目录webapp

在 main 目录下, 和 java 目录并列, 创建一个 webapp 目录

 src 表示源代码所在的目录。

  • main/java 表示源代码的根目录. 后续创建 .java 文件就放到这个目录中。
  • main/resources 表示项目的一些资源文件所在的目录。
  • webapp 目录就是未来部署到 Tomcat 中的一个重要的目录. 当前我们可以往 webapp 中放一些静态资源, 比如 html , css 等。

在这个目录中还有一个重要的文件 web.xml. Tomcat 找到这个文件才能正确处理 webapp 中的动态资源

2.2、创建目录WEB-INF和文件web.xml

在 webapp 目录内部创建一个 WEB-INF 目录, 并创建一个 web.xml 文件。

2.3、编写 web.xml

 web.xml 中拷贝以下代码:

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
    <display-name>Archetype Created Web Application</display-name>
</web-app>

3、 java 目录创建一个类 HelloServlet

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
        System.out.println("hello servlet!");
        resp.getWriter().write("hello");
    }
}

1、@WebServlet(“/hello”) 注解, 表示 Tomcat 收到的请求中, 路径为 /hello的请求才会调用 HelloServlet 这个类的代码

2、重写 doGet 方法。 doGet 的参数有两个, 分别表示收到的 HTTP 请求 和要构造的 HTTP 响应。 这个方法会在 Tomcat 收到 GET 请求时触发。一个服务器的工作流程,就可以分成三个典型的步骤:

1.接收请求并解析.

2.根据请求计算响应

3.构造响应数据,并返回给客户端

1和3这两步, tomcat 已经帮我们做好了;2这步就是咱们程序猿自己要实现的逻辑。也就是doGet要实现的内容

3、HttpServletRequest 表示 HTTP 请求. Tomcat 按照 HTTP 请求的格式把 字符串 格式的请求转成了一个 HttpServletRequest 对象. 后续想获取请求中的信息(方法, url, header, body 等) 都是通过这个对象来获取。

4、HttpServletResponse 表示 HTTP 响应. 代码中把响应对象构造好(构造响应的状态码, header,body 等)

5、resp.getWriter() 会获取到一个流对象, 通过这个流对象就可以写入一些数据, 写入的数据会被构造成一个 HTTP 响应的 body 部分, Tomcat 会把整个响应转成字符串, 通过 socket 写回给浏览器

6、通过Tomcat调用主要满足三个条件:

a) 创建的类需要继承自 HttpServlet

b) 这个类需要使用 @WebServlet 注解关联上一个 HTTP 的路径

c) 这个类需要实现 doXXX 方法。

4、打包成war包

4.1、Pom.xml引用

    <packaging>war</packaging>
    <build>
        <finalName>HelloServlet</finalName>
    </build>

4.2、Maven点击package

 5、把war包放入Tomcat运行并访问

把war放入tomcat的webapps目录中,启动tomcat,访问

6、在Idea中运行

6.1、tomcat安装,步骤:File-->setting,点击install

 6.2、通过Tomcat运行

6.2.1、点击右上角的 “Add Configuration”打开页面后,点击+,选择Smart Tomcat

6.2.2、输入Name,配置Tomcat server的Configure

 Tomcat Server添加本地的Tomcat

 

 应用后展示如下:

 使用 Smart Tomcat 部署的时候, 我们发现 Tomcat 的 webapps 内部并没有被拷贝一个 war 包, 也没有看到解压缩的内容.Smart Tomcat 相当于是在 Tomcat 启动的时候直接引用了项目中的 webapp 和 target目录.

Context Path:默认是项目目录,运行时不可用。需要改成:build的finalName目录,例如:/HelloServlet

这里特别重要,特别重要,特别重要。

6.2.3、应用后,通过tomcat执行

参考:

https://blog.csdn.net/weixin_42571453/article/details/127602980

https://blog.csdn.net/weixin_46913665/article/details/124850210

https://blog.csdn.net/wkh18891843165/article/details/116672710

https://blog.csdn.net/slivelight/article/details/120081124

https://blog.csdn.net/m0_60631323/article/details/127576149

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁宁可可

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值