0
点赞
收藏
分享

微信扫一扫

开源软件:JumpServer、DataEase、MeterSphere

其生 2023-12-14 阅读 34

image-20231213183204440

前言

Servlet 是什么

Servlet 就是Tomcat给java提供的原生的进行web开发的api

网页分成两类:
静态页面: 页面内容始终是固定不变的,比如百度主页
image-20231213174707298

动态页面: 页面内容随着输入参数的不同而改变,比如搜索结果页
image-20231213175104360
静态页面就只是单纯的html,动态页面,则是html+ 数据

第一个 Servlet 程序

先写个 hello world

让我们学习编程以来的最难的 hello world 编写
有以下步骤:
1.创建项目 2.引入依赖 3.创建目录结构
4.编写代码 5.打包程序 6.部署程序
7.验证

1.创建项目

此处要创建一个maven项目了.

maven是个"工程管理"工具,它的作用有

  • 规范目录结构
  • 管理依赖(处理好使用的第三方库)
  • 构建
  • 打包
  • 测试

注: 目前主要就是使用管理依赖和打包功能

开始创建项目

image-20231210204951844

如果你首次使用maven,项目创建好了之后,会在下面读条,从中央仓库加载一些maven的依赖.

  1. 需要联网

  2. maven 仓库在国外,网络不一定稳定,这里的读条可能会比较久.(长的可能要读1个小时)[(只是第一次使用会这样,读完之后,后面就好了,如果报错失败没事,过两天再试试~

怎么修改成国内镜像?

将maven源改为国内阿里云镜像的超链接,点击即可跳转


maven不是个独立的程序吗, 为什么不需要单独下载安装嘛?

maven项目的目录结构

image-20231211085055581

src: 存放源代码

  • main: 业务代码
    • java: 放java代码
    • resource:
    • 放程序依赖的文件(配置文件,数据文件,图片,图标,声音…)
  • test
    • java: 测试代码
  • pom.xml: maven项目总的配置文件,后面经常用到.

image-20231211085632046

2.引入依赖

从中央仓库下载jar包

https://mvnrepository.com/

官网链接

如果页面一直显示在加载中,可以使用加速器Watt Toolkit(steam++),它在Windows自带的Microsoft Store就有.

image-20231211105218911

image-20231211105443022

正式开始下载

image-20231211123857525

image-20231211124223310

image-20231211193756434

image-20231211225309737

3.创建目录

1)在main目录下(和java, resources并列),创建一个webapp目录

image-20231212085520013

2)在webapp下创建WEB-INF目录

image-20231212092040192

3)再在WEB-INF目录下创建一个web.xml 文件

在这里插入图片描述

image-20231212093422397

注: 此处的目录名字和结构,都不能错.

4)给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>

image-20231212104250463

web.xml的作用

4.编写代码

image-20231213111027790

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 父类里的这个方法只是返回了一个错误页面,需要注释掉
        // super.doGet(req, resp);
        //这个是在服务器的控制台里打印.
        System.out.println("hello world");
        //要想把 hello world返回到客户端,需要使用下面的代码.
        //getWriter会得到一个 Writer 对象.
        resp.getWriter().write("hello world");
        // 此处的writer对象是从属于resp对象的,此时进行的write操作其实是往resp的 body部分进行写入
        // 等resp对象整个构造好了,tomcat 会统一的转成HTTP响应的格式,再写socket.
    }
}

resp.getWriter().write("hello world");

@WebServlet("/hello")

此处这个@WebServlet注解的作用是把当前的类,和一个HTTP请求的路径送联起来.

例子: 我去餐馆吃饭

上述三个不同的流程,相当于是三个不同的类/方法

一个Servlet程序中,可以有很多的Servlet类.每个Servlet类都可以关联到不同的路径(对应到不同的资源)
因此此处的多个Servlet就实现了不同的功能.

5.打包程序

借助maven直接一点击即可

image-20231213121341958

微调 pom.xml

image-20231213123942412

再次打包

image-20231213124618253

6.部署

image-20231213161559034

启动tomcat

image-20231213161839922

image-20231213162204877

7.验证

这个url的路径的写法
image-20231213163639609

image-20231213164803853

务必保证这两级路径都是正确的!!!稍微错一点,就很容易出现404.

小结:

举报

相关推荐

0 条评论