防止用户直接访问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这样的框架可能会非常有帮助。
通常,身份验证检查是通过Filter
-执行的-您放置了一个过滤器来检查每个请求,如果用户未通过身份验证,则过滤器会重定向。
以上是 防止用户直接访问jsp文件 的全部内容, 来源链接: utcz.com/qa/401271.html