IDEA和tomcat的相关配置
-
IDEA会为每一个tomcat部署等项目单独建立一份配置文件
CATALINA_BASE: /Users/lannisite/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/5531471d-a815-43ae-9dbd-76b29594950d
-
项目的两个存储地方:工作空间 和 tomcat部署的web项目
- tomcat真正访问的是“ tomcat部署的web项目” , “ tomcat部署的web项目” 对应着 “工作空间项目” 的web目录下的所有资源。
- WEB-INF目录下的资源不能被浏览器直接访问
Servlet体系结构
-
Servlet体系结构
- Servlet接口:有两个实现类:
- GenericServlet:继承Servlet的抽象类
- HttpServlet:继承GenericServlet的抽象类
- Servlet接口:有两个实现类:
-
GenericServlet:
- 只将service方法的抽象,仅需要复写这一个方法,其他方法做了空实现。
- 将来定义Servlet类的时候,可以继承GenericServlet,实现service()方法即可。
- 如果想复写其他方法,自己手动添加即可。
- 相对方便,但是实际开发的时候并不用这个方法
-
HttpServlet: 对http协议的一种封装,简化操作
- 可以自动处理请求时(post、get)方法的判断 doGet() doPost()
- 我们想屏蔽post get的处理逻辑,只需要继承httpServlet,复写他的这两个方法即可
- http一共有7种请求方式 post get head put delete options trace
- P.S. 通过浏览器直接请求:是get方式
-
Servlet相关配置 (可以配置文件配置,也可以注解配置)
-
urlpartten:servlet访问路径 @WebServlet(“/demo3”) ,在这里面value是一个数组,所以可以配置多个路径
@WebServlet({"/d4","/dd4","/demo4"}) public class ServletDemo4 extends HttpServlet {}
-
路径定义规则:三种方式
- /xxx: (以此为主)
- /xxx/xxx :目录结构,访问时必须两层都写
@WebServlet("/user/demo4") public class ServletDemo4 extends HttpServlet {}
/* 通配符
@WebServlet("/user/*") public class ServletDemo4 extends HttpServlet {}
-
访问/user/任意内容都可以,
P.S. /* 这样的匹配优先级是最低的,如果有相对应的内容,优先匹配相对应的内容,比如demo3
3. *.do :注意不要写/ ,后缀名随便写
HTTP协议
-
概念:Hypter Text Transfer Protocol 超文本传输协议
- 传输协议:定义了,客户端和服务器端通信时,发送数据的格式
- 特点:
- 基于TCP/IP的高级协议,Http也是可靠协议
- 默认端口号是80,意味着80端口可以不写
- 基于请求响应模型的:一次请求对应一次响应的
- http是无状态的:无状态理解:每次请求之间是相互独立的,不能交互数据
- 历史版本:
- *1.0版本:每次请求都会建立新的链接
- *1.1版本:复用链接:请求完成之后,链接会等一会,如果不再用,就释放掉
-
请求消息数据格式:对应request 4部分
-
请求行
请求方式 请求URL 请求协议/版本 GET /login.html HTTP/1.1
-
请求头
-
请求空行
-
请求体
-
-
响应消息数据格式:对应response