前言
Servlet 是什么
Servlet 就是Tomcat给java提供的原生的进行web开发的api
网页分成两类:
静态页面: 页面内容始终是固定不变的,比如百度主页
动态页面: 页面内容随着输入参数的不同而改变,比如搜索结果页
静态页面就只是单纯的html,动态页面,则是html+ 数据
第一个 Servlet 程序
先写个 hello world
让我们学习编程以来的最难的 hello world 编写
有以下步骤:
1.创建项目 2.引入依赖 3.创建目录结构
4.编写代码 5.打包程序 6.部署程序
7.验证
1.创建项目
此处要创建一个maven项目了.
maven是个"工程管理"工具,它的作用有
- 规范目录结构
- 管理依赖(处理好使用的第三方库)
- 构建
- 打包
- 测试
注: 目前主要就是使用管理依赖和打包功能
开始创建项目
如果你首次使用maven,项目创建好了之后,会在下面读条,从中央仓库加载一些maven的依赖.
-
需要联网
-
maven 仓库在国外,网络不一定稳定,这里的读条可能会比较久.(长的可能要读1个小时)[(只是第一次使用会这样,读完之后,后面就好了,如果报错失败没事,过两天再试试~
怎么修改成国内镜像?
将maven源改为国内阿里云镜像的超链接,点击即可跳转
maven不是个独立的程序吗, 为什么不需要单独下载安装嘛?
maven项目的目录结构
src: 存放源代码
- main: 业务代码
- java: 放java代码
- resource:
- 放程序依赖的文件(配置文件,数据文件,图片,图标,声音…)
- test
- java: 测试代码
- pom.xml: maven项目总的配置文件,后面经常用到.
2.引入依赖
从中央仓库下载jar包
https://mvnrepository.com/
官网链接
如果页面一直显示在加载中,可以使用加速器Watt Toolkit(steam++),它在Windows自带的Microsoft Store就有.
正式开始下载
3.创建目录
1)在main目录下(和java, resources并列),创建一个webapp目录
2)在webapp下创建WEB-INF目录
3)再在WEB-INF目录下创建一个web.xml 文件
注: 此处的目录名字和结构,都不能错.
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>
web.xml的作用
4.编写代码
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直接一点击即可
微调 pom.xml
再次打包
6.部署
启动tomcat
7.验证
这个url的路径的写法
务必保证这两级路径都是正确的!!!稍微错一点,就很容易出现404.
小结: