gpt4 book ai didi

jsp - 防止用户直接访问一个jsp文件

转载 作者:行者123 更新时间:2023-12-04 19:11:48 25 4
gpt4 key购买 nike

假设我有一个 servlet,它将请求转发到包含产品列表的 jsp 文件。
例如,Login.java是一个将请求(成功登录后)转发到 Products.jsp 的 servlet .
现在,在 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 - 防止用户直接访问一个jsp文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com