2015-01-09 6 views
2

Я использую кот, и я хотел бы, всякий раз, когда я иду в направление, которое не обрабатывается сервлет, делать другие вещи INSEAD показывать ошибки по умолчанию:Сервер Tomcat, измените по умолчанию HTTP 404?

type Status report 

message /test 

description The requested resource is not available. 

Где я могу справиться с this¿?

Спасибо заранее

+0

возможно дубликат [Ошибок страницы в Tomcat 7 для кода ошибки 500] (http://stackoverflow.com/questions/15987212/custom-error-page-in-tomcat- 7-for-error-code-500) –

ответ

4

Определить страницу ошибки в файле web.xml:

<error-page> 
<error-code>404</error-code> 
<location>/path/to/your/page.html</location> 
</error-page> 

Update

  1. Нет, не нужно anyting спецификации. Может быть что-нибудь, HTML, JSP, JSF ...
  2. Нет
  3. может быть размещен в любом месте, часто в нижнем
  4. Между кронштейнов

Вы можете определить страницы ошибок от их статуса HTTP (404 , 500, ...) или путем определения полного имени исключения (java.lang.Exception, java.io.FileNotFoundException ...). Если вы используете Servlet 3.x, вы можете даже опустить часть error-code/error-classname, чтобы определить страницу ошибок по умолчанию.

+0

Неужели страница с ошибкой должна быть как-то специфичной? Любой заголовок или что-то особенное? И еще вопрос, где в web.xml он должен быть помещен? Между какими скобками? Или просто в конце? Спасибо – aDoN

+0

Вы можете разместить его в любом месте внутри в web.xml. Заголовок автоматически применяется. Путь относится к WebRoot. –

0

Вот минимальный web.xml, который вы можете поместить в папку webapps (если вы не хотите менять 404 страницы по всему миру). Это позволит вам, например, перенаправить все запросы в новую папку.

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0" 
    metadata-complete="true"> 

    <error-page> 
    <error-code>404</error-code> 
    <location>/redirect.jsp</location> 
    </error-page> 
</web-app> 

web.xml Обратите внимание, что необходимо положить в .../webapps/YourFolder/WEB-INF/web.xml.

В redirect.jsp. Вы бы поставить что-то вроде:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"> 
<head> 
    <title>Moved</title> 
</head> 
<% 
    // get the requested URI 
    String requestedLocation = request.getRequestURI(); 
    // rewrite to new location 
    String newLocation = requestedLocation.replaceAll("^/Old", "/New"); 

    // 301 - permanent redirect 
    response.setStatus(response.SC_MOVED_PERMANENTLY); 
    response.setHeader("Location", newLocation); 
%> 
<body> 
&rarr; <a href="<%=newLocation%>"><%=newLocation%></a> 
</body> 
</html> 

 Смежные вопросы

  • Нет связанных вопросов^_^