一天一个java知识点----Tomcat与Servlet

认识BS架构

  • 静态资源:服务器上存储的不会改变的数据,通常不会根据用户的请求而变化。比如:HTML、CSS、JS、图片、视频等(负责页面展示)
  • 动态资源:服务器端根据用户请求和其他数据动态生成的,内容可能会在每次请求时都发生变化。比如:Servlet、JSPSpring框架等(负责逻辑处理)
  • B/S 架构:Browser/Server,浏览器/服务器架构模式。客户端只需浏览器,应用程序的逻辑和数据都存在服务器端。(维护方便 体验一般)
  • C/S 架构: Client/Server,客户端/服务器架构模式。需要单独开发维护客户端。(体验不错 开发维护麻烦)

TomCat

介绍:

  • 概念: Tomcat是一个开源免费的轻量级Web服务器,是Apache软件基金会的核心项目,支持Servlet/JSP少量JavaEE(JakartaEE)规范。
  • JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC 、JNDI、EJB、RMI、JSP、ServletXML、JMS、Java IDL、JTS、JTA、JavaMail、JAF。
  • Tomcat 也被称为 Web容器、Servlet容器。Servlet程序需要依赖于Tomcat才能运行 。

安装配置

  • 安装:绿色版,直接解压即可
  • 卸载:直接删除目录即可
  • 启动:双击 bin/startup.bat
  • 关闭:
  • 直接×掉运行窗口:强制关闭
  • bin/shutdown.bat:正常关闭
  • Ctrl+C:正常关闭

注意:如果Tomcat启动窗口一闪而过,需要检查 JAVA_HOME 环境变量是否正确配置。

还有就是环境变量里面需要配置一下:

配置

让命令窗口没有乱码:

如何更改tomcat端口:(解决端口冲突的)

Servlet

  • Servlet 是运行在Web服务器中的小型java程序,是Java提供的一门动态web资源开发技术。通常通过HTTP协议接收和响应来自于客户端的请求。
  • Servlet 是JavaEE规范之一,其实就是一个接口(定义Servlet需实现Servlet接口 或 继承HttpServlet) ,并由web服务器运行Servlet。

第一个Servlet程序

准备:创建maven项目(设置打包方式为war),导入Servlet坐标(provided)。

开发:

  • 定义一个类,实现Servlet接口(继承HttpServlet),并实现所有方法。
  • 在Servlet类上使用@WebServlet注解,配置该Servlet的访问路径。
  • 部署:将开发好的Servlet部署在外部的Tomcat服务器中运行。

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| XML <!-- 打包方式修改为war包 --> <packaging>war</packaging> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <!-- 依赖范围设置为provide,打包后没有啦,会放到Tomcat中运行,Tomcat中已经继承了servlet-api.jar包 --> <scope>provided</scope> </dependency> </dependencies> |

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Java @WebServlet("/hello") public class HelloServlet extends HttpServlet { // doGet: 用于处理GET请求 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 1.获取请求参数 String name = req.getParameter("name"); // 2.给浏览器响应数据 resp.getWriter().println("Hello Servlet 入门:"+name); } } |

打包成功war包

复制war文件到webapps目录下

启动tomcat

打开网页输入:localhost:8080/servlet-demo/hello?name=Tom,浏览器显示这个即可。

将本地Tomcat集成到IDEA

  1. 第一步让IDEA管理Tomcat
  1. 第二步:部署web项目

注意事项:

  • 项目的打包方式需要设置为 war
  • servlet-api依赖的作用范围 scope 必须设置为provided

Servlet的执行流程

  • Servlet对象是由谁创建的,Servlet的doGet方法是由谁调用的 ?
  • Servlet对象由Web服务器创建,Servlet方法由Web服务器调用。
  • HttpServletRequest:用于封装所有的请求数据
  • HttpServletResponse:用于封装所有的响应数据
相关推荐
majingming1234 小时前
FUNCTION
java·前端·javascript
zopple4 小时前
常见的 Spring 项目目录结构
java·后端·spring
xuxie996 小时前
N11 ARM-irq
java·开发语言
cjy0001116 小时前
springboot的 nacos 配置获取不到导致启动失败及日志不输出问题
java·spring boot·后端
wefly20177 小时前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
zhenxin01227 小时前
Spring Boot实现定时任务
java
小江的记录本7 小时前
【事务】Spring Framework核心——事务管理:ACID特性、隔离级别、传播行为、@Transactional底层原理、失效场景
java·数据库·分布式·后端·sql·spring·面试
sheji34167 小时前
【开题答辩全过程】以 基于springboot的校园失物招领系统为例,包含答辩的问题和答案
java·spring boot·后端
寂静or沉默7 小时前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
卓怡学长7 小时前
m289在线交友系统
java·spring·tomcat·maven·intellij-idea·hibernate