jsp页面含有有include标签,访问该页面直接报500错误。是什么原因?

weixin_38974328 2019-04-22 03:45:14
我看见一个别人写的java web项目,它有一个jsp页面,里面放诸如

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="baseurl" value="${pageContext.request.contextPath}/xxxx"></c:set>

此类型的代码。其他页面如果要使用baseurl这个变量,而不想重复在页面中写上如上代码,只需使用页面添入<%@ include file="/WEB-INF/views/include/taglib.jsp"%>该标签代码即可,也就是引入一个jsp文件的内容

我模仿试了一下,首先新建一个taglib.jsp,里面放如
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="baseurl" value="${pageContext.request.contextPath}/xxxx"></c:set>代码,然后浏览器输入使用页面的url回车直接报500错误。
我采取了下列方法排除原因
直接在使用的页面写
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="baseurl" value="${pageContext.request.contextPath}/xxxx"></c:set>,去掉<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>引入代码。运行测试时,能正常访问,刷新几次不出错

我尝试把taglib.jsp里面的内容清空(什么都不写),再次运行进入该页面还是直接报500错误。如果去掉<%@ include file="/WEB-INF/views/include/taglib.jsp"%>这句话,在进入页面就没问题,就能正常浏览。

异常代码

message java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.modules.sys.user.login_jsp

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.modules.sys.user.login_jsp
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:376)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1257)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.modules.sys.user.login_jsp
java.net.URLClassLoader.findClass(Unknown Source)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:376)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1257)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.69 logs.

这个错误,在互联网搜索好像没有相关解决方案,是除了jstl,standard这两个jar包,还需要什么东西吗?
...全文
483 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2019-04-23
  • 打赏
  • 举报
回复
引用 2 楼 weixin_38974328 的回复:
[quote=引用 1 楼 qq_39936465 的回复:]
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>

可能是路径错误,试试直接 /views/include/taglib.jsp

不是路径错误,有路径错误eclipse会直接提示的。[/quote]

你尝试下include其他的jsp试试,或者把taglib.jsp移到其他地方加载试试,500就是解析错误,路径不对也会报,一般程序没问题的话大多数是路径的问题。
赶路的香菇 2019-04-22
  • 打赏
  • 举报
回复
用这个试下<jsp:include />
weixin_38974328 2019-04-22
  • 打赏
  • 举报
回复
引用 1 楼 qq_39936465 的回复:
<%@ include file="/WEB-INF/views/include/taglib.jsp"%> 可能是路径错误,试试直接 /views/include/taglib.jsp
不是路径错误,有路径错误eclipse会直接提示的。
qq_39936465 2019-04-22
  • 打赏
  • 举报
回复
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>

可能是路径错误,试试直接 /views/include/taglib.jsp

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧