Tomcat的目录结构
- bin:该目录下存放的是二进制可执行文件
- conf:这个目录下包含了server.xml和web.xml
- lib:Tomcat的类库,里面存放Tomcat运行所需要的jar文件
- logs:存放日志文件,记录Tomcat启动和关闭的信息,如果启动Tomcat时有错误,异常也会被记录到日志文件中
- temp:Tomcat的临时文件,这个目录下的东西在停止Tomcat后删除
- webapps:存放web项目的目录,其中每个文件夹都是一个项目;其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目
- 运行时生成的文件,最终运行的文件都在这里
项目部署及访问静态资源
Tomcat是Web服务器,我们的项目应用是部署在webapps下的,然后通过特定的URL访问。
创建webapps中建立文件夹(项目应用),比如:myweb
创建WEB-INF文件夹,用于存放项目的核心内容
- 创建classes,用于存放jar文件
- 创建lib,用于存放jar文件
- 创建web.xml,项目配置文件(到ROOT项目下的WEB-INF复制即可)
把网页hello.html复制到myweb文件夹中,与WEB-INF在同级目录
URL访问资源
URL主要有4部分组成:协议、主机、端口、资源路径
http://localhost:8080/WebProject/test.html
Servlet
- 概念:Servlet:Server Applet的简称,是服务器端的程序,可交互式的处理客户端发送到服务端的请求,并完成操作响应。
- 作用:接收客户端请求、动态生成网页、将包含操作结果的动态网页响应给客户端。
- 可通过GenericServlet或HttpServlet完成Servlet的编写
- 注解方式使用servlet
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/test")
public class BasicServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doget");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("dopost");
}
}
注解的常用属性
name:Servlet名字
value:配置url路径,可以配置多个
urlPattern:配置url路径,和value作用一样,不能同时使用
loadOnStartup:配置Servlet的创建的时机,如果是0或正数启动时创建,如果是负数,则访问时创建,数字越小优先级越高。
HTTP协议
-
无连接:无连接指的是每次TCP连接只处理一个或多个请求,服务器处理完客户的请求后,即断开连接。采用这种方式可以节省传输时间。
HTTP1.0版本是一个请求响应之后,直接就断开了,称为短连接。
HTTP1.1版本不是响应后直接就断开,而是等几秒种,这几秒钟之内有新的请求,那么还是通过之前的连接通道来收发消息,如果过了这几秒钟用户没有发送新的请求,就会断开连接。称为长连接。
无状态是指协议对事务处理没有记忆能力。 -
HTTP协议通信流程
客户与服务器建立连接
客户向服务器发送请求
服务器接受请求,并根据请求返回相应的文件作为应答
客户与服务器关闭连接(四次挥手) -
HTTP请求报文:请求行 (请求方法/地址 URL协议/版本)、请求头、空行、请求正文
-
HTTP响应报文:状态行、响应头、空行、响应正文
-
常见的状态码
状态代码 | 状态描述 | 说明 |
---|---|---|
200 | OK | 客户端请求成功 |
302 | Found | 临时重定向 |
403 | Forbidden | 服务器收到请求,但是拒绝提供服务,服务器通常会响应正文中给出不提供服务的原因 |
404 | Not Found | 请求的资源不存在,例如,输入了错误的URL |
500 | Internal Server Error | 服务器发生不可预期的错误,导致无法完成客户端的请求 |