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中配置,更直观。
相关推荐
cike_y7 小时前
Servlet原理&Mapping问题&ServletContext对象
java·安全·javaweb
sean9081 天前
Firefox 安装非市场的插件
firefox·插件·市场
timer_0171 天前
Firefox 146.0 发布,为 Windows 10 带来备份工具并强化多平台体验
前端·windows·firefox
云和数据.ChenGuang3 天前
运维工程师免费技术教程之tomcat动态日志监控
运维·tomcat·firefox·运维工程师·运维技术
float_com3 天前
【JavaWeb常见BUG】—— Lombok依赖失效问题
java·javaweb·bug分析与解决
晚霞的不甘4 天前
华为云 DevUI 微前端实战:基于 Module Federation 的多团队协作架构落地
javascript·zookeeper·云原生·华为云·firefox
感谢地心引力7 天前
【Chrome-Edge-Firefox】浏览器插件开发
前端·chrome·edge·firefox
float_com8 天前
【JavaWeb】----- Maven入门与实践
maven·javaweb
K***728410 天前
保姆级JavaWeb项目创建、部署、连接数据库(tomcat)
数据库·tomcat·firefox