- HTTP Tomcat Servlet
- HTTP
- 相关的概念
- Web:广域网,通过浏览器访问服务器的站点
- JavaWeb:通过Java技术来实现的Web服务器
- BS: Browser Server 浏览器服务器模式
- 请求和响应的方式,通信协议使用HTTP
- 资源分类
- 静态资源:HTML CSS JavaScript
- 动态资源:Java写的程序,运行在服务器端,生成网页或获取到服务器端的数据
- 数据保存在数据库中
- 使用HTTP协议访问
- Hyper Text Transfer Protocol 超文本传输协议
- 作用:传输HTML
- 特点
- 1. 基于TCP协议
- 2. 基于请求-响应的模型访问服务器
- 3. 无状态协议,不会记录用户的访问状态,多次请求间不能共享数据
- HTTP请求
- 三个组成部分
- 请求行
- 请求方式:GET或POST
- URI:访问资源标识
- 协议和版本:HTTP/1.1
- 请求头
- 由多个键值对组成,每个键有自己的含义
- 请求体
- GET方法没有请求体,数据在请求行中发送
- POST方法数据在请求体中发送
- 请求行
- GET
-
- 请求参数在请求行中,没有请求体。
- 请求参数大小有限制
-
- POST
-
- POST请求请求参数在请求体中
- POST数据传输大小没有限制
-
- 三个组成部分
- HTTP响应
- 三个组成部分
- 响应行
- 协议和版本:HTTP/1.1
- 状态码:200
- 状态信息: OK
- 响应头
- 由键值对组成,每个键有自己含义
- 响应体
- 服务器返回的数据
- 字节流
- 字符流
- 服务器返回的数据
- 响应行
- 响应格式
- 常见状态码
- 200 OK 客户端请求成功
- 304 Not Modified 没有修改,使用缓存
- 404 Not Found 请求资源不存在
- 405 没有重写doGet和doPost方法
- 500 Internal Server Error 服务端发生不可预期的错误
- 三个组成部分
- 相关的概念
- Tomcat
- 介绍
- Web容器(Web服务器)运行在服务器端的软件,我们写的Servlet必须运行在Web容器中,由Web容器来调用
- JavaEE:Java Enterprise Edition 企业版,功能更强大。
- 13种规范
- JavaSE:Java Standard Edition 标准版
- 安装
- zip压缩包,直接解压就可以使用。要求:目录结构不要太深,不要放在汉字的目录下
- 关注3个目录
- bin:可执行文件
- 启动:startup.bat
- 关闭:shutdown.bat
- conf:配置文件
- 核心配置文件:server.xml
- webapp:发布项目目录
- bin:可执行文件
- 运行
- 确认JDK是否安装配置好了
- 命令行:java -version
- 命令行:java -version
- 启动:直接在bin目录下双击startup.bat
- 打开浏览器:http://localhost:8080
- 关闭
- 直接×掉运行窗口:强制关闭
- bin\shutdown.bat:正常关闭
- Ctrl+C:正常关闭
- 常见问题
- 没有配置JDK的环境
- 控制台乱码
- 修改conf/logging.properties 将所有的UTF-8换成GBK
- 端口号被占用
- 找到占用端口号的程序,将程序终止
- 修改tomcat默认的端口号
- 修改conf/server.xml
- 改完后要重启服务器
- 修改conf/server.xml
- 找到占用端口号的程序,将程序终止
- 没有配置JDK的环境
- 确认JDK是否安装配置好了
- 部署工程
- 包的类型
- jar包:普通的Java工程的包
- war包:Web工程的包
- 直接复制到webapp目录下
- 采用压缩文件.war的方式
- 将整个项目使用压缩工具打包成一个zip文件,注:在目录的下一级打包
- 改zip的扩展名为war
- 复制到webapps目录下,tomcat会自动解压成一个同名的目录。
- 使用单独的xml配置文件(idea默认的方式)
- 创建一个xml文件:C:\apache-tomcat-9.0.45\conf\Catalina\localhost\
- 文件名是访问地址:通过path属性指定访问地址
- 内容指向物理地址 Context docBase
- Context中C是大写
- 最后有/结束标记
- 配置方式
- 如果文件名不是叫index.html则文件名也要写出来
- 包的类型
- 介绍
- idea中创建Web工程
- 安装JBLJavaToWeb插件
- 1. 在线安装
- 2. 本地安装
- 1. 在线安装
- 创建Web工程
- 1. 创建正常的maven工程
- 2. 使用插件将maven工程转成web工程
- 打包类型变成war
- <packaging>war</packaging>
- 安装JBLJavaToWeb插件
- IDEA中使用 Tomcat
- Tomcat配置
- 部署模块
- 注:文件是在webapp目录下,不是在WEB-INF目录下。WEB-INF下资源不能在浏览器上访问
- Servlet(重点)
- 概念:Servlet 是 Java提供的一门动态web资源开发技术 运行在Tomcat中Java程序,实现Servlet接口
- 开发第一个Servlet
- 1. 在pom.xml中导入servlet的jar包
- <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <!-- 不会最终打包到服务器中去 --> <scope>provided</scope> </dependency>
- 2. 编写一个类实现Servlet接口
- public class Demo1Servlet implements Servlet
- 3. 重写接口中所有的方法,其中service()方法用来处理用户的请求
- @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("收到了浏览器发送的请求..."); }
- 4. 在类上使用@WebServlet("/访问地址")注解指定访问地址注:前面一定要加上/
- @WebServlet("/demo1")
- 1. 在pom.xml中导入servlet的jar包
- 执行流程
- 由http://localhost:8080找到服务器和Tomcat
- 由模块访问地址找到相应的模块
- 由Servlet的访问地址找到Servlet
- 由Tomcat实例化Servlet,并且调用service()方法
- 生命周期
- 方法
- init() 方法:初始化的时候执行1次
- loadOnStartup:在tomcat启动的时候就实例化这个Servlet,参数值是一个整数,值越小越先加载
- service()方法:每次请求都会执行
- destroy()方法:服务器关闭的时候执行1次
- init() 方法:初始化的时候执行1次
- 执行流程
- 一个Servlet在Tomcat容器中只会实例化一次,只会产生一个对象,而且常驻内存。要等到服务器关闭才会销毁。
- 方法
- Servlet的继承结构
- Servlet接口
- GenericServlet抽象类
- HttpServlet抽象类
- doGet 处理Get请求
- doPost处理Post请求
- 如果没有重写相应的方法会出现405错误
- urlPattern的访问地址
- 精确匹配:访问地址与Servlet地址完全一样 @WebServlet("/Demo4Servlet")
- 目录匹配:访问某个目录下所有的地址,都会访问这个Servlet @WebServlet("/user/*")
- 扩展名匹配:访问某种类型的资源,都可以 @WebServlet("*.do") 注:前面没有/
- 任意匹配: 任何一个地址都可以访问 @WebServlet("/*")
- 访问原则
- 哪个地址更接近,访问哪个
- 以/开头的访问地址,比扩展名结尾的访问地址,优先级更高
- XML的方式
- <!-- 配置demo5的访问地址 --> <servlet> <!-- servlet的名字 --> <servlet-name>demo5</servlet-name> <!-- servlet完整的类名:包中+类名 --> <servlet-class>com.itheima.servlet.Demo5XmlServlet</servlet-class> </servlet> <!-- servlet映射 --> <servlet-mapping> <!-- 名字与上面一样 --> <servlet-name>demo5</servlet-name> <!-- 访问地址:以/开头 --> <url-pattern>/demo5</url-pattern> </servlet-mapping>
- HTTP
HTTP Tomcat Servlet
最新推荐文章于 2024-05-11 13:33:45 发布