Servlet初学(1) 项目部署及访问静态资源

2022-09-19

Tomcat是web服务器,我们的项目应用是部署在webapps下,然后通过特定的url访问。

创建项目

  • 在Tomcat的webapps中建立文件夹,比如:myweb
    • 创建WEB-INF文件夹,用于存放项目核心内容
      • 在web-inf文件夹下创建classes,用于存放class文件
      • 创建lib,用于存放jar文件
      • 创建web.xml,项目配置文件,到ROOT项目下的WEB-INF复制即可
  • 把网页hello.html复制到myweb文件夹中,与WEB-INF同级

准备工作:

WEB-INF下:

image-20220812125330859

项目myweb(在webapps里)下:

image-20220812125401060

即可打开Tomcat测试,输入连接如下:

http://localhost:8080/myweb/hello.html

即后面加: /项目名/静态资源名

url由四部分组成:协议,主机,端口,资源路径

image-20220812130232852

访问流程图: image-20220812130404480

常见错误1:404

访问的资源不存在,检查路径和资源名称

注意,我们要把.class文件放在classes文件夹下以部署我们的项目,也就是我们写好的java文件需要编译,点idea上面的build,build project,然后出现out目录即可

但是这个时候Tomcat依旧无法访问到这个.class文件需要在web.xml中配置才行。

打包war

还有一种部署,我们把整个项目打包成war包放在webapps目录下,相当于把我们这个项目的发行版部署到了Tomcat服务器,这个时候我们的url根据war包的资源路径就可以直接访问到项目内容

Servlet

作用:

  • 接收客户端请求,完成操作
  • 动态生成网页
  • 将包含操作结果的网页返回给客户端

http协议

什么是http?

超文本传输协议

  • 支持客户端(浏览器)/服务器模式

  • 简单快速,客户端请求方法:GET POST等

  • 无状态协议

  • 无连接:每次tcp连接只处理一个或多个请求,服务器处理完请求后就断开了连接。

    ​ 现在一般是长连接,服务器响应之后不会直接断开,而是等几秒之后断开,这几秒有新的请求,就还是通过旧连接处理,没有请求再断开

通信流程

  • 客户与服务器建立连接(三次握手)
  • 客户向服务器发送请求
  • 服务器接收请求,并返回资源到客户端
  • 服务器关闭与客户端连接