当前位置 : 主页 > 编程语言 > java >

阻止用户直接访问jsp文件

来源:互联网 收集:自由互联 发布时间:2021-06-25
假设我有一个servlet将请求转发到包含产品列表的jsp文件. 例如,Login. java是一个servlet,它将请求(成功登录后)转发给Products.jsp. 现在,在Products.jsp中,我必须首先检查用户是否确实已登录:
假设我有一个servlet将请求转发到包含产品列表的jsp文件.
例如,Login. java是一个servlet,它将请求(成功登录后)转发给Products.jsp.
现在,在Products.jsp中,我必须首先检查用户是否确实已登录:

<% if (request.getSession().getAttribute("username") == null) {
    response.sendRedirect("/store/login");
    return;
} %>

这是为了防止用户仅通过编写localhost:8080 / store / Products.jsp来查看产品.
我在这里阅读了一些帖子,最好避免在jsp文件中编写java代码.
所以我的问题是,有没有更优雅的方法来解决这个问题?

是 – 将所有JSP文件放在WEB-INF /(例如 – WEB-INF / jsp)中,并且只从servlet转发给它们.例如,如果servlet映射到/ foo,那么它的doGet()方法可以执行您编写的逻辑,并转发到product.jsp.

但是,对于裸小的servlet,它可能会变得过于冗长,因此像Spring MVC这样的框架会非常有用.

通常,身份验证检查由过滤器执行 – 您放置一个过滤器来检查每个请求,如果用户未经过身份验证,则过滤器会重定向.

网友评论