
JavaWeb笔记14:Tomcat 服务器(静态,动态资源访问)
初始化阶段:容器加载Servlet类并创建Servlet对象,调用 运行阶段:对于每个HTTP请求,容器创建 销毁阶段:当Java Web应用终止时,容器调用所有 Servlet 的 线程安全:Tomcat内部使用线程处理请求,Servlet对象的 只读属性:为了防止数据不同步,Servlet类中的只读属性应定义为 资源管理:在
发布日期:2021-05-08 06:38:25
浏览次数:21
分类:精选文章
本文共 2434 字,大约阅读时间需要 8 分钟。
Tomcat 服务器是一个开源的轻量级Web应用服务器,专门用于开发和调试Java Servlet程序。作为JavaEE标准的重要组成部分,Servlet通过定义一套标准,实现了服务器端程序与客户端请求之间的交互,广泛应用于构建动态Web应用。
Servlet 的基本概念
Servlet 是Java语言编写的运行在服务器端的程序,具备与平台和协议无关的特性。其核心功能是通过处理HTTP请求和生成HTTP响应来实现动态内容的交付。与 Servlet容器(如Tomcat)协同工作,Servlet能够处理客户端的GET和POST请求,并返回相应的响应。
Tomcat 的安装与配置
Tomcat服务器的安装相对简单。下载完成后直接解压即可。解压后的文件夹结构如下:
- bin:存放启动、停止脚本(.sh和.bat文件)。
- conf:相关配置文件(如server.xml)。
- lib:存放运行Tomcat所需的类库。
- logs:保存运行日志文件。
- webapps:存放要运行的Web应用文件夹。
- work:Tomcat内部使用的临时文件夹。
双击 bin/startup.bat
启动Tomcat,访问 http://127.0.0.1:8080/
即可进入默认首页。注意:如果出现启动异常,可以参考Tomcat日志文件(logs/catalina.out
)进行排查。
Servlet 的生命周期
Servlet 的生命周期由 Servlet容器(如Tomcat)控制,主要包括以下三个阶段:
init()
方法对对象进行初始化。ServletRequest
和 ServletResponse
对象,并调用 Servlet 的 service()
方法(内部调用 doGet()
或 doPost()
方法)。destroy()
方法,释放占用的资源。注意事项
doGet()
和 doPost()
方法运行在多线程环境中。因此,类属性必须 thread-safe,避免数据竞争和不一致。final
类型。init()
方法中初始化资源,在 destroy()
方法中释放资源,提高资源利用效率。静态资源与动态资源访问
在 webapps
文件夹下新建 myworld
文件夹,并按照以下结构组织文件:
webapps/ myworld/ classes/ # 与web.xml同级,存放类文件 web.xml # 定义Servlet映射
index.html 示例
静态资源示例 静态资源示例
这是一个静态页面
HelloServlet.java 示例
import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String name = req.getParameter("name"); name = name == null ? "world" : name; resp.setContentType("text/html; charset=utf-8"); resp.getWriter().println("GET
"); resp.getWriter().println("hello " + name + "
"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/html; charset=utf-8"); resp.getWriter().println("POST
"); resp.getWriter().println("hello world
"); }}
web.xml 配置示例
Hello HelloServlet Hello /hello
通过以上配置,访问 http://127.0.0.1:8080/myworld/
可以查看静态资源页面,访问 http://127.0.0.1:8080/myworld/hello
则可以使用动态资源 HelloServlet。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年05月02日 02时05分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2021-05-08
2019-03-09
【Linux】VMware Workstation 不可恢复错误: (vcpu-0)
2019-03-09
VS中 fatal error LNK1123: 转换到 COFF 期间失败 的解决方法
2019-03-09
关于Img标签在固定宽高的容器内部以图片比例缩放存在
2019-03-09
python --- 监控客户端是否存活
2019-03-09
pyhton---异常处理的终极语法、网页访问基本读取、网页访问异常处理
2019-03-09
Centos 7.3 计算本目录下的以特定名字文件夹个数
2019-03-09
linux下编程出现 对'sem_wait'未定义的引用解决方案
2019-03-09
JavaFX学习笔记-颜色选择器ColorPicker与日期选择器DatePicker
2019-03-09
工具研究:(三)Nginx配置错误的路由时均统一跳转到登录界面
2019-03-09
ant design pro v5去掉右边content区域的水印
2019-03-09
web_求和(练习)
2019-03-09
9. ArrayList与LinkedList的区别
2019-03-09
52. 什么时候会发生类初始化?
2019-03-09
JavaScript——使用iterator遍历迭代map,set集合元素
2019-03-09
常用的Linux命令
2019-03-09