我的第一个Servlet程序,并理解浏览器和代码如何关联在一起

目录

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对象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值