部署在服务器的Java web项目的JSP页面跳转外部关联的css样式不生效的解决方法

做一个项目时,一个文件夹内的jsp页面,跳转到另外一个文件夹的jsp页面,出现了css,js等外部关联的文件不生效的问题。

几经百度,得出以下解决方案。


  1. tomacat的项目根目录都是部署在webapps目录下。所以可以用绝对路径来配置外部css,或者js文件,例如:
<script type="text/javascript" src="/项目名称/js所在文件夹/js文件名.js"></script>
<link rel="stylesheet" type="text/css" href="/项目名称/css样式所在文件夹/css名.css" />

    2. 在工程index页面,加入代码段,获取工程路径,用 setAttribute方法保存到session中,然后直接引用就可以了
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.setAttribute("basePath", basePath);
%>

引用时直接:

<link rel="stylesheet" type="text/css" href="${basePath }css/right_content.css">

<think>好的,我现在需要帮助用户解决在IntelliJ IDEA中运行JSP时无法自动跳转Webapp目录下的JSP文件的问题。用户提到了Tomcat的Deployment配置,所以我应该先回顾一下相关的引用内容,看看有没有相关的配置步骤。 首先,根据引用[1],IDEA部署项目的位置与Eclipse不同,它默认部署项目的out/artifacts目录下,而不是Tomcat的webapp目录。这可能意味着用户的项目结构可能没有正确配置,导致JSP文件没有被正确部署。 接下来,引用[3]提到Application context的配置会影响访问的URL路径。如果用户设置的Application context是/XXX,那么访问路径应该是localhost:8080/XXX,而不是根目录。这可能是一个常见的问题点,需要检查Deployment中的Application context设置是否正确。 然后,引用[5]详细说明了Tomcat的配置步骤,包括添加war exploded工件,这非常重要。如果用户没有正确添加war exploded,可能导致项目无法正确部署JSP文件无法被找到。同时,项目依赖的重新导入(Maven Reimport)也可能影响构建结果,需要确保依赖正确。 现在,我需要将这些信息整合成一个解决方案。首先,检查项目的工件配置是否正确,确保Web资源被包含在输出目录中。然后,确认Tomcat的Deployment设置是否添加了正确的war exploded工件,Application context是否设置为合适的路径。另外,项目结构中的Web资源目录是否指向了正确的webapp文件夹,这也是关键。 可能还需要检查运行配置中的URL设置,确保Tomcat启动后的跳转路径正确指向项目的上下文路径。如果用户修改了Application context,URL也需要相应调整。此外,清理缓存重启IDEA有时也能解决一些配置未生效的问题。 用户可能在配置过程中遗漏了某些步骤,比如没有重新构建项目,导致out目录未更新,或者没有正确设置Web资源目录。需要一步步引导用户检查这些配置点,确保每个环节都正确无误。</think>### IDEA配置Tomcat实现JSP自动跳转的完整解决方案 根据Tomcat部署机制IDEA特性,配置需重点关注以下三个环节: 一、工件配置(Artifacts) 1. 进入`File > Project Structure > Artifacts` 2. 确认已创建`war exploded`格式工件 3. 检查输出目录包含: ```markdown - WEB-INF/classes(编译后的class文件) - WEB-INF/lib(依赖库) - webapp目录所有资源(*.jsp/css/js等) ``` 4. 若缺少webapp资源,右键`Available Elements`添加目录[^5] 二、部署配置(关键步骤) ```markdown 1. 打开Run/Debug Configurations 2. 选择Tomcat Server > Deployment 3. 确认已添加带`exploded`后缀的工件 4. 设置Application context: - `/` → 访问路径:http://localhost:8080/ - `/yourProject` → 访问路径:http://localhost:8080/yourProject 5. 勾选"Build artifact before deploy"[^4] ``` $$部署路径验证公式:实际路径=Tomcat端口+Application\_context+jsp文件路径$$ 三、Web资源根目录绑定 1. 进入`File > Project Structure > Modules` 2. 在Web模块设置中: ```markdown - Web Resource Directory应指向项目中的webapp目录 - 设置相对路径(如:/src/main/webapp) - 指定Web页面访问根路径(建议设置为"/") ``` 3. 应用配置后IDEA会自动同步资源到out目录[^1] **常见问题排查清单**: 1. 404错误时检查: - 控制台是否输出`Artifact deployed successfully` - out/artifacts目录是否生成jsp文件 - 浏览器地址栏是否包含Application context路径[^3] 2. 修改jsp后未生效: - 执行`Build > Rebuild Project` - 检查Tomcat配置的`On 'Update' action`设置为`Redeploy` 3. 中文乱码问题: ```xml <!-- 在web.xml添加 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值