Servlet 入门
学习内容来自 B站千峰Java视频
两种架构
- C/S 架构,即 Client/Server 架构
- B/S 架构,即 Browser/Server 架构
C/S 架构
特点:必须在客户端安装特定软件
优点:图形显示效果好
缺点:服务器的软件和功能进行升级,客户端也必须升级,不利于维护
B/S 架构
特点:无需安装客户端,通过浏览器访问即可;需要通过 HTTP 协议访问
优点:软件和功能进行升级时更新服务器即可,利于维护
缺点:图形显示效果不如 C/S
常见的 Web 服务器
Tomcat 安装
- 下载
进入官网选择想要的版本下载
- 下载后解压缩,目录结构如下
Tomcat 启动和停止
双击 bin/startup.bat 文件启动
启动后,在浏览器中输出 localhost:8080 查看
双击 shutdown.bat 文件即可关闭
项目部署及访问静态资源
Tomcat 是 web 服务器,项目都部署在 webapps 下,然后通过特定的 URL 访问
创建项目
访问
- 使用 startup.bat 打开 tomcat
- 在浏览器输入 localhost:8080/myweb/hello.html
什么是 Servlet
- Servlet 是 JavaEE 规范接口之一
- Servlet 是 JavaWeb 三大组件之一
- Servlet 是运行在服务器上的一个 java 小程序,接收客户端发送的请求,并响应数据给客户端
Servlet 作用
开发步骤
- 搭建开发环境
- 编写 Servlet
-
部署 Servlet
-
配置 Servlet
-
运行测试
IDEA 开发 Servlet实现部署、访问
这里因为使用的是 IDEA 2021.2,参考了这篇博客
创建后的项目结构为:
- 创建 Servlet 的实现类
public class MyServlet 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("my first servlet web project");
System.out.println(new Date());
}
@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">
<servlet>
<servlet-name>my</servlet-name>
<servlet-class>com.sict.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>my</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
</web-app>
- 在 IDEA 中运行
项目打包
war 包
- 打开 Project Structure,进入 Artifacts
- 如图
- 选择右下角的 apply,然后点击 ok
- Build
此时 build 好的 war 包在 out 目录下
接下来将 war 包放入 tomcat 容器即可
HTTP 协议
概念
特点
通信流程
请求报文与响应报文
-
请求报文
例子:
-
响应报文
例子