首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么没有显示来自WEB的403错误页?

为什么没有显示来自WEB的403错误页?
EN

Stack Overflow用户
提问于 2015-02-08 06:15:18
回答 1查看 951关注 0票数 0

在web.xml中,当我更改以下内容时:

代码语言:javascript
复制
<error-page>
  <error-code>403</error-code>
  <location>/unauthorized.jsp</location>
</error-page>

对此:

代码语言:javascript
复制
<error-page>
  <error-code>403</error-code>
  <location>/WEB-INF/unauthorized.jsp</location>
</error-page>

页面不再显示。

这两个文件都存在并且是相同的,其他错误类型的页面可以很好地处理WEB。

为什么会发生这种事?

EN

回答 1

Stack Overflow用户

发布于 2015-02-08 08:31:27

WEB中的文件受客户端直接访问的保护。它是在JavaEE规范中定义的。因此,当您将文件放在WEB文件夹下时,它们将变得不可访问。因此,如果需要直接访问这些(静态)文件,最好将它们放在WEB目录之外。

注意:您可以将应该被客户端直接访问的文件放在WEB文件夹下。

例如:WEB/jsp/protected.jsp ted.jsp

详细说明你在下面的评论。

您可以使用如下所示的控制器映射来映射403错误页。在这里,您将有一个公共的exception.jsp页面,根据错误代码的不同,它位于WEB文件夹中。

代码语言:javascript
复制
@Controller
public class ExceptionController {

    /** Holds key for access denied exception. */
    private static final String ACCESS_DENIED = "COMMON.EXCEPTION.403";

    /** Holds return model attribute ACCESS_DENIED. */
    private static final String ACCESS_DENIED_ATT = "accessDenied";

    /** Holds return model PAGE ACCESS_DENIED. */
    private static final String ACCESS_DENIED_HTM = "/accessDenied.htm";

    /** Holds return page of exception. */
    private static final String EXCEPTION = "exception";


    /**
     * Handle access denied exception and display proper message.
     * 
     * @param model - ModelMap
     * @return the name of the view.
     */
    @RequestMapping(value = ACCESS_DENIED_HTM, method = RequestMethod.GET)
    public String accessDenied(ModelMap model) {

        String message = new ErrorMsgLoader().getErrorMessage(ACCESS_DENIED);
        model.addAttribute(ACCESS_DENIED_ATT, message);
        return EXCEPTION;
    }


}

web.xml中的错误映射如下所示。

代码语言:javascript
复制
<error-page>
    <error-code>403</error-code>
    <location>/accessDenied.htm</location>
</error-page>

在上面的代码中,我使用了基于Spring的视图处理程序映射。但是,在应用程序中不使用任何框架的情况下,您也可以对简单的Servlet映射进行同样的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28391177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档