powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Как можно сделать ошибку 404 страницу не найдена
25 сообщений из 34, страница 1 из 2
Как можно сделать ошибку 404 страницу не найдена
    #39804645
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я хочу сделать ошибку 404 чтобы если неправильный адрес напишу выдал ошибку что это страница не найдена

StudentController

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
package adil.java.schoolmaven.controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import adil.java.schoolmaven.entity.Student;
import  adil.java.schoolmaven.service.StudentService;

@Controller
public class StudentController {
	// Constructor based Dependency Injection
	private StudentService studentService;

	public StudentController() {

	}

	@Autowired
	public StudentController(StudentService studentService) {
		this.studentService = studentService;
	}


	@RequestMapping(value = { "/", "/index" }, method = RequestMethod.GET)
	public ModelAndView hello(HttpServletResponse response) throws IOException {
		ModelAndView mv = new ModelAndView();
		mv.setViewName("index");
		return mv;
	}

	// Get All Users
	@RequestMapping(value = "/allStudents", method = RequestMethod.POST)
	public ModelAndView displayAllUser() {
		System.out.println("User Page Requested : All Students");
		ModelAndView mv = new ModelAndView();
		List<Student> studentList = studentService.getAllStudents();
		mv.addObject("studentList", studentList);
		mv.setViewName("allStudents");
		return mv;
	}

	@RequestMapping(value = "/addStudent", method = RequestMethod.GET)
	public ModelAndView displayNewUserForm() {
		ModelAndView mv = new ModelAndView("addStudent");
		mv.addObject("headerMessage", "Add Student Details");
		mv.addObject("student", new Student());
		return mv;
	}

	@RequestMapping(value = "/addStudent", method = RequestMethod.POST)
	public ModelAndView saveNewStudent(@ModelAttribute Student student, BindingResult result) {
		ModelAndView mv = new ModelAndView("redirect:/index");

		if (result.hasErrors()) {
			return new ModelAndView("error");
		}
		boolean isAdded = studentService.saveStudent(student);
		if (isAdded) {
			mv.addObject("message", "New student successfully added");
		} else {
			return new ModelAndView("error");
		}

		return mv;
	}

	@RequestMapping(value = "/editStudent/{id}", method = RequestMethod.GET)
	public ModelAndView displayEditUserForm(@PathVariable Long id) {
		ModelAndView mv = new ModelAndView("/editStudent");
		Student student = studentService.getStudentById(id);
		mv.addObject("headerMessage", "Редактирование студента");
		mv.addObject("student", student);
		return mv;
	}

	@RequestMapping(value = "/editStudent/{id}", method = RequestMethod.POST)
	public ModelAndView saveEditedUser(@ModelAttribute Student student, BindingResult result) {
		ModelAndView mv = new ModelAndView("redirect:/index");

		if (result.hasErrors()) {
			System.out.println(result.toString());
			return new ModelAndView("error");
		}
		boolean isSaved = studentService.saveStudent(student);
		if (!isSaved) {

			return new ModelAndView("error");
		}

		return mv;
	}

	@RequestMapping(value = "/deleteStudent/{id}", method = RequestMethod.GET)
	public ModelAndView deleteUserById(@PathVariable Long id) {
		boolean isDeleted = studentService.deleteStudentById(id);
		System.out.println("Удаление студента: " + isDeleted);
		ModelAndView mv = new ModelAndView("redirect:/index");
		return mv;

	}

}
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804647
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804650
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

Спасибо) для spring mvc подойдет?
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804651
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019, конечно. У спринга очень вменяемая документация, советую искать и читать. Главное, чтобы версия документации совпадала с версией, которую испоьзуете вы ;)
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804652
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

У меня там классы куда можно этот код вставить? Чтобы ошибку выдал
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
@ControllerAdvice(basePackageClasses = AcmeController.class)
public class AcmeControllerAdvice extends ResponseEntityExceptionHandler {

	@ExceptionHandler(YourException.class)
	@ResponseBody
	ResponseEntity<?> handleControllerException(HttpServletRequest request, Throwable ex) {
		HttpStatus status = getStatus(request);
		return new ResponseEntity<>(new CustomErrorType(status.value(), ex.getMessage()), status);
	}

	private HttpStatus getStatus(HttpServletRequest request) {
		Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
		if (statusCode == null) {
			return HttpStatus.INTERNAL_SERVER_ERROR;
		}
		return HttpStatus.valueOf(statusCode);
	}

}
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804656
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019, а какое отношение это к 404 имеет? Этот advice будет работать везде
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804658
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

с помощью Advice оно будет выводить ошибку 404 страница не найдена?
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804661
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019, я дал вам читать с общей главы, чтобы вы ознакомились с принципами, а не начали делать сразу. Если у вас так горит, то

Custom error pages найдите по ссылке на странице.
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804667
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

Я добавил Custum error pages но почему то не работает
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
package adil.java.schoolmaven.controller;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class ErrorController {
 
    @RequestMapping(value = "errors", method = RequestMethod.GET)
    public ModelAndView renderErrorPage(HttpServletRequest httpRequest) {
         
        ModelAndView errorPage = new ModelAndView("errorPage");
        String errorMsg = "";
        int httpErrorCode = getErrorCode(httpRequest);
 
        switch (httpErrorCode) {
            case 400: {
                errorMsg = "Http Error Code: 400. Bad Request";
                break;
            }
            case 401: {
                errorMsg = "Http Error Code: 401. Unauthorized";
                break;
            }
            case 404: {
                errorMsg = "Http Error Code: 404. Resource not found";
                break;
            }
            case 500: {
                errorMsg = "Http Error Code: 500. Internal Server Error";
                break;
            }
        }
        errorPage.addObject("errorMsg", errorMsg);
        return errorPage;
    }
     
    private int getErrorCode(HttpServletRequest httpRequest) {
        return (Integer) httpRequest
          .getAttribute("javax.servlet.error.status_code");
    }
    
    @RequestMapping(value = "500Error", method = RequestMethod.GET)
        public void throwRuntimeException() {
    throw new NullPointerException("Throwing a null pointer exception");
}
}




Error JSP
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<%-- 
    Document   : errorPage
    Created on : 22.04.2019, 12:40:40
    Author     : Adil
--%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page session="false"%>
<html>
<head>
    <title>Home</title>
</head>
<body>
    <h1>${errorMsg}</h1>
</body>
</html>
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804680
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019,
в документации сказано:

Creating a custom error.jsp page does not override the default view for error handling. Custom error pages should be used instead.

То есть либо html , либо надо добавить маппинг на jsp.Проще сделать статическую страницу и не париться.
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804750
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

Можете помочь это реализовать пожалуйста
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804789
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019,
Делайте по шагам и без спринга, если не можете экстерном.
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804793
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019, добавьте в папк web-inf подпапку - public
в эту папку добавьте подпапку - error
в папку error добавьте 404.html
перезапустите проект, если ничего лишнего не было настроено, должно из коробки отработать
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804835
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,
Добавил по новому ErrorController и я добавил картинку у меня ошибка
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
/*
 
package adil.java.schoolmaven.controller;

import java.io.IOException;
import java.io.PrintWriter;
import javassist.NotFoundException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class ErrorController extends AbstractErrorController {

    private static final String ERROR_PATH = "/error";

    @Autowired
    public ErrorController(ErrorAttributes errorAttributes) {
        super(errorAttributes);
    }

    @RequestMapping(value = ERROR_PATH, method = RequestMethod.GET)
    public ResponseEntity<?> handleErrors(HttpServletRequest request) {
        HttpStatus status = getStatus(request);

        if (status.equals(HttpStatus.NOT_FOUND))
            throw new NotFoundException();

        return ResponseEntity.status(status).body(getErrorAttributes(request, false));
    }

    @Override
    public String getErrorPath() {
        return ERROR_PATH;
    }

}



Добавил ConrollerAdvice

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
package adil.java.schoolmaven.controller;


import javassist.NotFoundException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@ControllerAdvice
public class GlobalControllerAdvice {

    @ExceptionHandler(NotFoundException.class)
    public String notFound() {
        return "error/404";
    }

}
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804838
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019, удалите контроллер ;)
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804841
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

Какой?)
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804843
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

Там не закомментровано на самом деле, случайно поставил символ коммента на код
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804844
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019Озверин,

Какой?)

GlobalControllerAdvice
ErrorController
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804847
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

Я их специально добавил чтобы ошибка 404 вышла, больше нигде нету кода чтобы он выводил я по новому сделал
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804849
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019, нужен всего один файл. Удалите или закоменнтите.
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804853
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,

Получается ErrorController и GlobalControllerAdvice удалить? или одну из них?
ПРосто у меня кроме них больше нигде не написан код чтобы выдавал ошибку 404
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804858
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019, этот код не нужен. Спринг утверждает, что чтобы переопределить страницу, хватит просто разместить файл по пути, которому я сказал. Если вам надо добавить какие-то кастомные поля, то стоит переопределить резолвер.
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804859
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019Я хочу сделать ошибку 404 чтобы если неправильный адрес напишу выдал ошибку что это страница не найденачто сейчас выдается?
И без вашей странички должна выходить 404 ошибка.
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804865
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Я все правильно же сделал?


У меня так же выдает томкат ошибку
Код: java
1.
2.
3.
4.
HTTP Status 404 – Не найдено
Type Status Report

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
...
Рейтинг: 0 / 0
Как можно сделать ошибку 404 страницу не найдена
    #39804872
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019,

еще раз говорю, надо поместить файл 404.html
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Как можно сделать ошибку 404 страницу не найдена
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]