Я не понимаю эту ошибку 500 и проблему с файлами cookie, надеясь, что кто-то сможет рассказать мне об этом.tomcat 8 jsp javax.servlet.ServletException
Когда я запускаю свой запросDispatcher, я получаю внутренний erro 500, который я не могу вычислить. Ressource является /WEB-INF/jsp/index.jsp, но в сообщении об ошибке он говорит/WEB-INF/jsp/cookie ???
Сообщение об ошибке
HTTP Status 500 - javax.servlet.ServletException: javax.servlet.jsp.JspException: java.io.FileNotFoundException: запрашиваемый ресурс (/MyNewRandomBlog1.0/WEB -INF/jsp/{cookie = JSESSIONID = 4724BBA140EA29EFF07AD782C755ED13, cache-control = no-cache, connection = Keep-Alive, host = localhost: 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, applyat ion/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, /, user-agent = Mozilla/5.0 (совместим; MSIE 9.0; Windows NT 6.2; Win64; x64; Trident/7.0; ASU2JS), Accept-Encoding = GZIP, выкачать, уа-процессор = AMD64}) не доступен
Мой web.xml
<?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>
Мой файл дерева
Также я не использую файлы cookie в своей программе, поэтому файл cookie, отображаемый в сообщении, является стандартным файлом cookie?
Просто чтобы убедиться, что файл для RequestDispatcher действительно существует я сделал
String test = sc.getResource("/WEB-INF/jsp/index.jsp").toString();
Который работает нормально получать Ressource URL.
Редактировать. Добавлен код сервлета
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);
}
}
Вы определяете свой serlvet как 'intname' отображается на'/frontpage' так попробуйте вызвать его как 'HTTP://: /MyNewRandomBlog1.0/frontpage' - btw все ресурсы внутри 'WEB-INF' защищены и недоступны непосредственно из-за пределов веб-приложения (то есть из браузера пользователя) –
ochi
Спасибо за ответ Ochi. Поскольку я понимаю главную страницу в файле приветствия,/forntpage и intname - это все внутренние значения, которые могут быть такими, какие мы хотим. Также я использую этот стиль в других проектах без проблем. Я поместил файлы .jsp в файл WEB-INF, поэтому я могу принудительно выполнить вызов сервлета, который, в свою очередь, будет генерировать index.jsp и все другие .jsp-страницы. Таким образом, динамический контент может быть вставлен на страницы, и пользователи не могут напрямую просматривать их. Когда я вызываю http: // localhost: 8080/MyNewRandomBlog1.0/frontpage, я получаю сообщение об ошибке. –
Можете ли вы поделиться некоторым кодом из сервлета 'FrontpageCreation'? – ochi