Tomcat
- 创建项目
- webapps 目录下创建目录(简化部署 打包war格式压缩包)
- server.xml Host标签下添加内容
<Context docBase="项目路径" path="/虚拟目录"/>
- conf/Catalina/localhost下,添加任意名称的xml, 内容:
<Context docBase="项目路径" path="/虚拟目录"/>
这种方式是热加载,可以在不关闭Tomcat的情况下生效
- 动态项目目录结构
根目录
WEB-INF
web.xml web核心配置文件
classes目录 字节码文件的目录
lib目录 依赖的jar包
JDBC连接池
Tomcat
- 创建项目
- webapps 目录下创建目录(简化部署 打包war格式压缩包)
- server.xml Host标签下添加内容
<Context docBase="项目路径" path="/虚拟目录"/>
- conf/Catalina/localhost下,添加任意名称的xml, 内容:
<Context docBase="项目路径" path="/虚拟目录"/>
这种方式是热加载,可以在不关闭Tomcat的情况下生效
- 动态项目目录结构
根目录
WEB-INF
web.xml web核心配置文件
classes目录 字节码文件的目录
lib目录 依赖的jar包
Servlet
- server applet 运行在服务器端的小程序, 位于 javax.servlet.*
- 单例, 多个用户同时访问, 会产生线程安全问题, 所以避免创建成员变量
- 简单的Servlet步骤
// 1. 创建项目
// 2. 定义类,实现javax.servlate.Servlet接口, 例如: Servlet
// 3. 配置web.xml
package com.it.web.servlet;
import javax.servlate.*;
// 有多个接口方法,这里只写一个
public class ServletDemo implements Servlet {
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("hello Servlet");
}
}
// 文件web.xml web-app中添加
<!-- 配置Servlet -->
<servlet>
<servlet-name>服务名</servlet-name>
<servlet-class>com.it.web.servlet.ServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>服务名</servlet-name>
<url-pattern>访问url</url-pattern>
</servlet-mapping>
- 使用注解 代替简单的web.xml
@WebServlet("/demo2")
public class ServletDemo implements Servlet {
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("demo2");
}
}
-
urlPattern 路径设置
- "/xxx"
- @WebServlet({"/demo3", "/demo4"})
- "/xx/*" 正则匹配 优先级最低
-
GenericServlet 将Servlet接口中的方法做了空实现,只抽象了 service() 方法
-
HttpServlet 实现了web访问各种形式,Get\Post\Update\Delete\Option\Put等
-
request 在请求范围内共享对象
- request.setAttribute
- request.getAttribute
- request.removeAttribute
-
转发路由
servletRequest.getRequestDispatcher("/demo3").forward(servletRequest, servletResponse);
- ServletContext对象 代表整个web应用,可以和程序的容器进行通信
- 功能 : 获取MINI类型: 文件数据类型, 格式 大类型/小类型 ,例如: text/html, bz/application/x-bzip
- 功能 : 域对象 共享数据; 共享所有数据, 服务打开就会创建, 服务关闭才会销毁
- 功能 : 获取文件的真实(服务器)路径
- / 代码 web目录, 比如 /t.txt
- 获取src下的目录 /WEB-INFO/classes/a.txt
网络
- tcp
- udp
- http
- request
- 请求行: 请求方式 请求url 请求协议/版本
- 请求头: 请求头名称: 请求值1, 请求值2..
- 请求空行: 空行
- 请求体: POST
- response
- 响应头: 协议/版本 响应状态码 状态码描述
- 响应行
- 响应空行
- 响应体
POST /server/index.php?s=/api/item/info HTTP/1.1
Host: showdoc.it.lixiangoa.com
Connection: keep-alive
Content-Length: 37
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
item_id=2&keyword=&default_page_id=94
网友评论