HTTP Status 404 – Не найдено

 
 
 
Сообщения:7
Недавно начал пытаться в программирование на JAVA. Мне дали задание, вывести сущности из базы данных на веб-страничку, используя jsp, сервлеты.
Я вроде бы сделал всё по образцу. Но у меня падает ошибка 404, The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Я понимаю, что скорее всего дело в том, что я куда не туда что-то переместил.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    <servlet>
        <servlet-name>helloServlet</servlet-name>
        <servlet-class>com.netcracker.rstq.util.HelloServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>helloServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>


index.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Products</title>
</head>
<body>
<h2>Cats List</h2>
<%--<p><a href='<c:url value="/create" />'>Create new</a></p>--%>
<table>
    <tr><th>Name</th><th>ID</th><th></th></tr>
    <c:forEach var="cats" items="${cats}">
        <tr><td>${cats.name}</td>
            <td>${cats.id}</td>
            <td>
<%--                <a href='<c:url value="/edit?id=${cats.id}" />'>Edit</a> |--%>
<%--                <form method="post" action='<c:url value="/delete" />' style="display:inline;">--%>
<%--                    <input type="hidden" name="id" value="${cats.id}">--%>
<%--                    <input type="submit" value="Delete">--%>
<%--                </form>--%>
            </td></tr>
    </c:forEach>
</table>
</body>
</html>


HelloServlet.java
package com.netcracker.rstq.util;
import com.netcracker.rstq.model.Cats;
import com.netcracker.rstq.dao.CatsBD;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

import java.util.ArrayList;


public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            ArrayList<Cats> cats = CatsBD.select();
            request.setAttribute("cats", cats);

            getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
        }
    }
 
 
Сообщения:7
https://savepice.ru/full/2019/10/20/11105fb707c507d6cfb4c0054a6bb9da-full.png.html
вот как выглядит проект
 
 
Сообщения:10007
JSP должна быть в WEB-INF.
 
 
Сообщения:7
Староверъ:
JSP должна быть в WEB-INF.

Исправил
https://cdn1.savepice.ru/uploads/2019/10/20/dbff0736eada06a6f693b86016531287-full.png
 
 
Сообщения:7
https://cdn1.savepice.ru/uploads/2019/10/20/b0cc63dbe5ee0fbb285926c80bd6f91a-full.png
 
 
Сообщения:10007
Так, теперь
getServletContext().getRequestDispatcher("/WEB-INF/index.jsp").forward(request, response);
И адрес не должен содержать /index.jsp, идти нужно по адресу сервлета. Если так подумать - то возможно и раньше все работало в старых каталогах, а путь в адресной строке был неправильным. И тем не менее JSP страницы должны лежать под WEB-INF, иначе их исходники можно скачать.
Изменен:21 окт 2019 07:01
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет