javax.servlet.ServletException:;common/top.jsp] 未找到

报错:

Exception
org.apache.jasper.JasperException: javax.servlet.ServletException: 文.件[/WEB-INF/jsp/user/WEB-INF/jsp/common/top.jsp] 未找到
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:638)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:499)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	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:634)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
Root Cause

javax.servlet.ServletException: 文.件[/WEB-INF/jsp/user/WEB-INF/jsp/common/top.jsp] 未找到

我的代码:


解决办法:

改为:

 <%@ include file="/WEB-INF/jsp/common/top.jsp" %>

原因:

JSP中有两种包含:

静态包含:<%@ include file=“被包含页面”%>

动态包含

静态和动态包含的区别与联系:

<%@ include file=” ”%>是指令元素。是行为元素

1.最终编译成java文件的数目不同。

  • 静态包含在转换成为java文件的时候将包含文件的内容“复制”到主体文件,然后作为一个整体编译。最终编译为一个java文件。

  • 动态包含是各个jsp文件分别转换,分别编译。最终编程成多个java文件。

2.执行时间不同

  • 静态包含发生在:JSP---->java文件阶段。

  • 动态包含发生在:执行class文件阶段。动态加入。

3.静态包含在两个文件中不能有相同的变量,动态包含允许。

由于静态包含相当于将包含文件内容直接复制到主体文件中,如果出现相同的变量,就会出现覆盖等问题,导致文件出错。而动态包含相当于调用不同的jsp,变量所在的空间不同,自然不会出现覆盖等现象。

无论是动态包含还是静态包含,其request对象都是相同的。也就是同一个request对象。
静态包含最终编译成一个java文件,有一个request对象很好理解。而动态包含最终编译成多个jsp文件,为何会使用一个request对象呢?其实这些jsp组合的过程是一个请求转发的过程,自然也使用同一个request对象了。

4.静态包含和动态包含的使用

简单总结一下,就一句话:被包含的页面是静态页面就用静态包含,是动态页面就用动态包含。

你可能感兴趣的:(bug)