Servlet-day01


前言

前面我们学习了部署静态页面,现在在我们来学习部署动态页面(动态页面指的就是 用户不同/时间不同/输入的参数不同, 页面内容会发生变化),此时我们就需要使用servlet。
Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给我们的 API, 帮助我们简单高效的开发一个 web app。
本文主要讲述了创建一个简单的servlet程序的基本过程


创建一个简单的servlet程序

1.创建项目

创建一个Maven项目
在这里插入图片描述

2.引入依赖

Maven 项目创建完毕后, 会自动生成一个 pom.xml 文件.
我们需要在 pom.xml 中引入 Servlet API 依赖的 jar 包.
1.打开官网,搜索servlet,选择第一个官网链接
在这里插入图片描述
2.选择合适的版本
在这里插入图片描述
因为我使用 的是Tomcat 8.5, 那么就需要使用 Servlet 3.1.0
可以在链接: http://tomcat.apache.org/whichversion.html 查询版本对应关系.
3. 把中央仓库中提供的 xml 复制到项目的 pom.xml 中

在这里插入图片描述

<!-- 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>

修改后的pom.xlm
在这里插入图片描述
第一次引入依赖时下载Maven时间可能会较长,如果长时间没法下载下来就需要考虑切换网络或者改成国内的Maven仓库下载

3.创建目录

(1)在main目录下创建webapp目录
webapp是部署到tomcat的重要目录,未来我们会在其中放置一些静态资源如html,css等,这个目录下还有一个重要文件web.xml,tomcat找到此文件才能正确处理webapp中的动态资源
(2)在webapp目录下创建WEB-INF目录
(3)在WEB-INF目录下创建web.xml文件
在这里插入图片描述
(4)编写web.xml内容
拷贝下面一段代码至web.xml中,目的是让tomcat能够识别出当前代码为webapp,并进行加载

<!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>

4.编写代码

在Java目录下创建HelloServlet一个类


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

详解:
在这里插入图片描述
tomcat收到个体请求时会触发doGet方法,tomcat会构造好两个参数req和resp
req:TCP socket中读取字符串,按照HTTP协议解析得到的对象放入HttpServletRequest对象req中,后续想获取请求中的信息(URL、header、body、方法)都要通过req来获取
resp:空对象,代码把响应对象构造好后放入HttpServletResponse的空对象resp中
"/hello.java":表示tomcat收到路径为hello.java的请求才会调用这个类的代码
resp.getWriter().write("hello,bing");获取流对象,将“hello,bing”作为响应写入resp,写入的数据会构造成响应的body部分,tomcat会把整个相应构造成字符串,通过socket写会给浏览器

5.打包程序

使用maven进行打包
(1)打开maven窗口(View => Tool Window => Maven)
在这里插入图片描述
(2)找到Lifecycle中的package双击或右键运行即可实现打包
在这里插入图片描述
(3)打包成功后在target目录下出现一个jar包,想在我们将其转换成tomcat能够识别的war包格式
在pom.xml中新增一个packing标签将打包格式改为war包;

<packaging> war </packaging>

在pom.xml中新增一个build标签,内置一个finalName标签,可以将打包出来的war包改一个新名字;

    <build>
        <finalName> 字命名的war包名字</finalName>
    </build>

(4)重新打包后就可以看到打包的war包

6.部署程序

(1)将打包好的war包拷贝到tomcat的webapps目录下
(2)启动tomcat就可以看到被解压缩后的war包,tomcat会自动把war包解压缩

7.验证程序

浏览器输入:http//:127.0.0.1:8080/第一级路径(项目名/war包名)/第二级路径(注解)
此处我输入:http//:127.0.0.1:8080/Servlet/hello.java
在这里插入图片描述
这个过程中在浏览器中输入URL后浏览器就会构造出一个对应的HTTP请求,发送给tomcat,tomcat根据第一级路径找到具体的webapp,根据第二级路径确定具体调用哪个类,然后通过是Get方法或者post方法确定调用类哪个方法(doGet或doPost)

对于Tomcat不了解的可以看这篇文章: tomcat的使用


感谢您对大饼的支持,今天的你也很努力呦

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值