目录
一、Servlet简介
Servlet运行在服务端的Java小程序,是sun公司提供—套规范(接口)用来处理客户端请求、响应给浏览器的动态资源。Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener),且最重要。
Tomcat
- 目录结构
- 项目部署
Tomcat是web服务器,我们的项目应用是部署在webapps下,然后通过特定的URL访问。
创建项目
- 在webapps中建立文件夹(项目应用),比如:myweb
- 创建WEB-INF文件夹,用于存放项目的核心内容
- 创建classes,用于存放.class文件
- 创建lib,用于存放jar文件
- 创建web.xml,项目配置文件(到ROOT项目下的WEB-INF复制即可)
- 把网页hello.html复制到myweb文件夹中,与WEB-INF在同级目录
URL访问资源
浏览器地址中输入URL:http://localhost:8080/myweb/hello.html
二、Servlet的工作流程
- 客户端(浏览器)发送请求到服务器。
- 服务器接受到请求并调用相关的Servlet做业务处理。
- 服务器将响应返回给客户端
三、Servlet
3.1、手动实现Servlet程序
- 搭建开发环境,将Servlet相关jar包(lib\servlet-api.jar)配置到classpath中
- 编写一个类去实现Servlet接口,实现service方法,处理请求,并响应数据
- 编译MyServlet后,将生成的.class文件放在WEB-INF/classses文件中
- 到web.xml中去配置程序的访问地址
package com.first.cyh;
import jakarta.servlet.*;
import java.io.IOException;
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("Hello Servlet!");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--给Tomcat配置Servlet程序-->
<servlet>
<!--给Servlet程序起一个别名,一般是类名-->
<servlet-name>HelloServlet</servlet-name>
<!--Servlet程序的全类名-->
<servlet-class>com.first.cyh.HelloServlet</servlet-class>
</servlet>
<!--给Servlet程序配置访问地址-->
<servlet-mapping>
<!--告诉服务器我当前配置的地址给哪个Servlet程序用-->
<servlet-name>HelloServlet</servlet-name>
<!--
配置访问地址
/斜杠在服务器解析时表示地址为http://ip:port/工程路径
/hello表示地址为http://ip:port/工程路径/hello
-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
3.2、IDEA部署Web项目
3.2.1、IDEA创建web项目
-
创建java项目
-
新创建完java项目的目录结构
-
变java为servlet项目
-
选择Web Application
-
更新完成后的目录结构
-
在WEB-INF目录中新建“classes” “lib”两个文件夹,用于存放相关文件
-
创建servlet
-
导入servlet需要的支持包(在Tomcat目录下的lib目录中的servlet-api.jar),然后右击目录,选择Add as Library…
3.2.2、IDEA集成Tomcat
-
点击files,选择Settings
-
选择Build,Execution,Deployment下的Aoolication Servers
-
点击+号,选择Tomcat Server
-
选择Tomcat安装目录,点击OK即可
3.2.3、项目部署到Tomcat
-
点击Add Configura
-
点击+号,选择Tomcat Server,选择Local
-
点击+号,选择Artifact,添加当前项目
3.3.4、关联第三方jar包
-
在WEB-INF目录下新建lib目录
-
复制jar包到lib目录中
-
右击目录,选择Add as Library…
3.3.5、如何导出war包
项目完成时,有时候需要打成war方便部署。war包可直接放入Tomcat的webapps目录中,启动Tomcat后自动解压,即可访问。
-
点击项目结构
-
选择Artifacts,点击+号
-
选择Archive—>For…
-
构建项目
-
在out\artifacts\目录中,查看生产的war包,把war放入Tomcat的webapps目录,启动Tomcat自动解压即可访问。
四、HTTP协议
4.1、HTTP协议通信流程
- 客户与服务器建立连接(三次握手)
- 客户向服务器发送请求
- 服务器接收请求,并根据请求返回相应的文件作为应答
- 客户与服务器关闭连接(四次挥手)
4.2、请求报文和响应报文
4.2.1、请求报文
4.2.2、响应报文