今天使用jsp指令元素include将两个jsp页面引入另一个jsp页面,启动服务器发现报500的错误,说index_jsp.class无法找到 。于是去本地找了一下,发现确实没有生产.class文件

文章插图
那说明是.java文件编译生成.class文件的过程中出现了问题,也就是这个.java文件是有bug的,才会导致编译无法通过 。
无法通过的jsp页面代码如下图:
index.jsp页面
<%--Created by IntelliJ IDEA.User: AdministratorDate: 2021/6/18Time: 11:07To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><%String basePath = request.getScheme() + "://" + request.getServerName() + ":" +request.getServerPort() + request.getContextPath() + "/";%><html><head><base href="https://tazarkount.com/read/"><title>title</title></head><body><%@ include file="top.jsp"%><h1>index页面</h1><%@ include file="bottom.jsp"%></body></html>top.jsp页面
<%--Created by IntelliJ IDEA.User: AdministratorDate: 2021/6/18Time: 11:08To change this template use File | Settings | File Templates.--%><%String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";%><html><head><base href="https://tazarkount.com/read/"><title>title</title></head><body><h1>头部</h1></body></html>问题就出在上面脚本元素中的basePath,因为指令元素的include是静态包含,会将被包含的jsp合并到当前jsp页面中形成一份jsp文件,然后翻译成一份java文件 。这样翻译出来的java文件就会有三个basePath
变量的定义,在java中变量只能声明一次,所以编译无法通过,无法生成.class文件,导致异常的发生 。
解决办法,只需要将top.jsp和bottom.jsp页面中的String basePath相关的代码删除,保证最后的java文件中不会重复声明变量即可 。
【jsp指令元素 include中遇到的index_jsp.class文件不生成的问题及原因】
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
