目录
Servlet
第一个Servlet程序
1.创建项目
maven是什么
如何创建maven项目
2.引入Servlet依赖
找到库中maven代码
3.创建目录结构
4.编写代码
理解注解@Webserlet
5.打包程序
生成war包
6.部署程序
7.验证程序
二.理解浏览器发的请求是怎么和自己写的代码建立联系的
1.匹配Context path的第一级路径
2.匹配Servlet Path第二级路径
3.匹配http方法
1.静态页面 vs动态页面
静态页面 直接拷贝到webapps就行
动态页面:基于servlet api进行代码实现了
Servlet
Servlet 是一组 Tomcat 提供的 API, 让程序猿自己写的代码能很好的和 Tomcat 配合起来, 从
而更简单的实现一个 web app.
第一个Servlet程序
写一个Servlet的 hello world(和jdbc差不多,都是固定的套路)
7个步骤:
1.创建项目
需要创建的是一个meven项目
maven是什么
maven实际上就是一个构造工具
包括不限于,编译,打包,部署功能....
实际上程序都有很多模块,模块之前都有相互依赖关系,你想编译运行a,就得先b,想b就c,一个一个写就比较麻烦
构建工具就是解决这个问题,使我们在开发比较复杂的项目的时候,也是可以比较方便进行打包
和编译工作的
如何创建maven项目
咱们使用mavem主要就是借助 maven 进行编译,打包,管理依赖
2.引入Servlet依赖
Servlet 不是 java 标准库自带的,要想使用, 就需要额外的下载安装,并引入到项目中,maven的一个核心功能,就是能够自动的管理依赖,就会把咱们使用的库里依赖的东西,自动从中央仓库里下载下来
找到库中maven代码
中央仓库地址https://mvnrepository.com
搜索Servlet并选择maven
复制下列代码引入到idea中,并加入depencies
复制完成后,代码爆红,这时候要点击maven自动下载依赖
(maven的一个核心功能,就是能够自动的管理依赖)
3.创建目录结构
虽然maven已经帮我们创建出一些目录了,但是还不够,咱们需要搞的是一个符合tomcat要求的目录
注意这里的位置,名字层次都必须严格一致,在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>
4.编写代码
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doGet(req, resp);
System.out.println("hello");
resp.getWriter().write("hello");
}
}
doget表示Tomcat在收到某些get请求时,调用doget方法(根据请求计算响应),俩个参数分别是请求和响应,响应是输出型参数,再进一步tomcat就把resp通过doget生成的对象,转换成一个http请求报文(把响应结果返回给客户端)
理解注解@Webserlet
5.打包程序
把写好的代码通过Servlet打包 + 部署,在Tomcat上运行(Servlet比作火车车节,箱,Tomcat就是火车头带动跑,需要格式一致)
生成war包
在pom.xml中输入下列代码
<packaging>war</packaging>
<build>
<finalName>servletHelloWorld</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
</plugin>
</plugins>
</build>
6.部署程序
把war包 拷贝到tomcat的webapp中
红色就是拷贝过来的程序,在经过tmocat部署生成servletHelloWorld文件
7.验证程序
通过浏览器构造一个HTTP请求来验证
二.理解浏览器发的请求是怎么和自己写的代码建立联系的
1.匹配Context path的第一级路径
获取到 url 中的第一级路径,servletHelloWorld,也就是我们new project内容,确定一个webapp
2.匹配Servlet Path第二级路径
TomCat找到servletHelloWorld 目录之后,就会加载里面的类,尤其是重点去识别 @WebServlet注解修饰的类
就会取出 url的第二级路径 /hello 这个也叫做Servlet path
然后就在@WebServlet 注解中,找到名字为/hello的类,找到类之后,创建实例(只会创造一次,如果之前创建过了,就会复用上次的实例)
3.匹配http方法
再解析出Http请求方法get,取出get之后,就可以根据http方法来调用对应的servlet中的方法
get请求使用doget方法
post请求使用 dopost方法
put请求调用doput方法
delete使用dodelete方法
......
同时Tomcat还会构造出HttpServletRequest对象和HttpServletResponse对象