tomcat 8 jsp javax.servlet.ServletException
我不明白这个错误和饼干问题,希望有人能告诉我 当我运行requestDispatcher时,我得到了一个我无法计算的内部错误500。ressource是/WEB-INF/jsp/index.jsp,但在错误消息中显示/WEB-INF/jsp/cookie 错误消息 HTTP状态500-javax.servlet.ServletException: javax.servlet.jsp.JspException:java.io.FileNotFoundException: 请求的资源 (/MyNewRandomBlog1.0/WEB-INF/jsp/{cookie=JSESSIONID=4724BBA140EA29EFF07AD782C755ED13, 缓存控制=无缓存,连接=保持活动状态,主机=本地主机:8080, accept language=da,en-US;q=0.7,en;q=0.3,accept=image/jpeg, application/x-ms-application、image/gif、application/xaml+xml、, image/pjpeg,application/x-ms-xbap,application/vnd.ms-excel, application/vnd.ms-powerpoint,application/msword,/, 用户代理=Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.2;Win64; x64;Trident/7.0;ASU2JS),接受编码=gzip,放气, ua cpu=AMD64})不可用 My web.xmltomcat 8 jsp javax.servlet.ServletException,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,我不明白这个错误和饼干问题,希望有人能告诉我 当我运行requestDispatcher时,我得到了一个我无法计算的内部错误500。ressource是/WEB-INF/jsp/index.jsp,但在错误消息中显示/WEB-INF/jsp/cookie 错误消息 HTTP状态500-javax.servlet.ServletException: javax.servlet.jsp.JspException:java.io.FileNotFoundException: 请求的资源 (/MyNew
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>MyNewRandomBlog1.0</display-name>
<welcome-file-list>
<welcome-file>frontpage</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>intname</servlet-name>
<servlet-class>dk.danicait.servlets.FrontpageCreation</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>intname</servlet-name>
<url-pattern>/frontpage</url-pattern>
</servlet-mapping>
</web-app>
这可以很好地获取ressource url
编辑。添加了servlet代码
public class FrontpageCreation extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext sc = getServletContext();
// Set request attributes
request.setAttribute("header", sc.getResource("/includes/nav.jsp").toString());
request.setAttribute("footer", sc.getResource("/includes/footer.jsp").toString());
// Request dispatcher
getServletContext().getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(request, response);
}
}
问题在于
request.setAttribute("header", sc.getResource("/includes/nav.jsp").toString());
request.setAttribute("footer", sc.getResource("/includes/footer.jsp").toString());
我尝试将这些值传递给
<c:import url="${header}"/>
<c:import url="${footer}"/>
在index.jsp页面中,我认为import语句不理解传递的值的格式。然后他们会给出一条错误消息500。确保在使用JSP之前在JSP中导入JSTL库 i、 e.将其添加到
index.jsp的顶部
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
拨打此电话之前:
<c:import url="${header}"/>
您将您的serlvet定义为映射到/frontpage
的intname
,因此尝试将其调用为http://:/MyNewRandomBlog1.0/frontpage
-顺便说一句,WEB-INF
中的所有资源都受到保护,不能直接从WEB应用程序外部(即从用户的浏览器)访问。谢谢您的回复。据我所知,欢迎文件中的frontpage、/forntpage和intname都是我们所希望的内部值。我也在其他项目中使用这种风格,没有任何问题。我将.jsp文件放在WEB-INF文件中,因此我可以首先执行servlet调用,该调用将依次生成index.jsp和所有其他.jsp页面。因此,动态内容可以插入到页面中,用户无法直接浏览页面。当我调用时,我得到了错误。您可以共享FrontpageCreation
servlet中的一些代码吗?在最后的原始问题中共享了servlet代码。尝试更改页眉
和页脚
的路径,以在前面包含一个
(点)-如,/includes/nav.jsp
——或者先尝试删除这两个属性,然后查看简化的index.jsp
(带有一条简单的hello world消息)正在被正确地提供给浏览器。我在第二行的文档顶部有这个文件,在/WEB-INF/lib/中有.jar文件javax.servlet.jsp.jstl-api-1.2.1.jar和jstl-impl-1.2.jar,但是我仍然收到import语句的错误。在import语句中有一个额外的分号(;
),请删除它
<c:import url="${header}"/>