javaweb项目入门实战

目录

一、项目部署的问题

  1. 配置warwar exploded的目的
    为了让Tomcat能识别并运行你的JavaWeb项目,是项目部署到Tomcat的必要步骤。
    JavaWeb项目最终需要打包成Web应用归档格式 (即war相关形式),Tomcat作为Web服务器,只能识别这种格式的项目文件结构,才能加载并运行项目。如果不配置,Tomcat不知道如何读取你的项目代码,无法启动项目。
  2. warwar exploded的区别
类型 含义 特点 适用场景
war 是一个压缩包 (把项目的class、资源、配置等文件打包成.war文件) 部署时Tomcat会自动解压这个包;文件是静态的,修改代码后需要重新打包部署 正式环境、生产环境发布
war exploded 解压后的war目录结构(直接以文件夹形式存在,包含所有项目文件) 修改代码后可以实时生效(配合热部署);不需要打包,部署速度快 开发环境、调试阶段


二、项目访问路径设置

上面的应用程序上下文项目的访问前缀 ,而服务器的URLTomcat的基础访问地址,二者组合起来才是项目的完整访问路径。

1. URL、应用程序上下文的区别

  • 服务器URL:http://localhost:8080/(这是Tomcat本身的基础地址,所有部署在这个Tomcat上的项目都基于这个地址访问)
  • 应用程序上下文:比如设为/myproject(这是你的项目在Tomcat中的"标识路径")
  • 完整访问路径 = 服务器URL + 应用程序上下文 + 资源路径
    (比如访问项目里的index.html,完整URL是http://localhost:8080/myproject/index.html

2. 实际开发中的使用

  • 服务器URL :一般不用改,保持Tomcat默认的http://localhost:8080/即可(除非端口冲突,才需要修改HTTP端口)。
  • 应用程序上下文 :根据需求设置
    1. 若你只部署一个项目:可以设为/(根路径),此时完整访问路径直接是http://localhost:8080/资源名(比如http://localhost:8080/login.html),更简洁。
    2. 若部署多个项目:给每个项目设不同的上下文(比如项目A设/appA,项目B设/appB),避免访问冲突。

三、项目默认首页路径的设置

默认首页路径的实现方式

默认首页的配置核心是在web.xml文件里面设置<welcome-file-list>标签,具体规则和扩展用法如下:

1. 基础配置:指定默认页面文件名

xml 复制代码
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <!-- 可添加多个备选页面,Tomcat会按顺序查找 -->
    <welcome-file>index.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>
  • 当访问项目根路径(如http://localhost:8080/myweb/)时,Tomcat会按顺序在项目根目录下查找<welcome-file>指定的文件,找到第一个存在的页面并加载;
  • 若项目根目录有index.jsp,则直接访问http://localhost:8080/myweb/会自动打开index.jsp;若没有,则找index.html,以此类推。

2. 配置子目录下的默认首页

如果默认首页不在项目根目录,而是在子目录(如pages/index.jsp),需通过虚拟路径映射Servlet转发实现:

方式1:用<welcome-file>指定子目录路径(Tomcat支持)
xml 复制代码
<welcome-file-list>
    <welcome-file>pages/index.jsp</welcome-file>
</welcome-file-list>
  • 访问根路径时,Tomcat会查找pages/index.jsp并加载。
方式2:通过Servlet映射实现(更灵活,支持动态逻辑)
  1. 先定义一个处理根路径的Servlet:
java 复制代码
@WebServlet("/") // 映射到根路径
public class IndexServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 转发到指定的首页路径
        req.getRequestDispatcher("/pages/home.jsp").forward(req, resp);
    }
}
  1. 此时web.xml中无需配置<welcome-file-list>,Servlet会直接处理根路径请求并跳转到目标页面。

3. 结合应用程序上下文的访问规则

若项目的应用程序上下文是/myweb,默认首页配置后:

  • 访问http://localhost:8080/myweb/ → 加载配置的默认首页;
  • 若默认首页是pages/index.jsp,则实际访问路径等价于http://localhost:8080/myweb/pages/index.jsp

注意事项

  • 优先级:Servlet映射(如@WebServlet("/")) > <welcome-file-list>,若同时配置,Servlet会覆盖欢迎页规则;
  • 静态资源优先级:若web.xml里不配置<welcome-file-list> ,Tomcat会使用内置的默认欢迎页列表 ,顺序是: index.htmlindex.htmindex.jsp
  • 新版Servlet(3.0+)推荐用注解替代web.xml的Servlet配置,但欢迎页仍建议在web.xml中配置,更直观。
相关推荐
Howie Zphile5 天前
TOMCAT跑死服务器,怎么限制TOMCAT使用资源
服务器·tomcat·firefox
非凡ghost7 天前
Floorp Browser(基于Firefox火狐浏览器)
前端·windows·学习·firefox·软件需求
getapi7 天前
/usr/local/apache-tomcat-9.0.71/logs/catalina.out占用了118G
tomcat·apache·firefox
guslegend10 天前
第1章:JavaWeb基础概念
javaweb
cike_y13 天前
JavaWeb-JDBC&事务回滚
java·开发语言·javaweb
hgz071014 天前
企业级多项目部署与Tomcat运维实战
前端·firefox
元气满满-樱15 天前
负载均衡-动静分离实验
运维·firefox·负载均衡
cike_y18 天前
JavaWeb之过滤器Filter&监听器
java·servlet·javaweb
网络研究院19 天前
Firefox 146 为 Windows 用户引入了加密本地备份功能
前端·windows·firefox
cike_y19 天前
JavaBean&MVC三层架构
java·架构·mvc·javaweb·java开发