【问题标题】:Redirect to setup if config is missing如果缺少配置,则重定向到设置
【发布时间】:2013-04-15 21:16:32
【问题描述】:

我正在尝试使用 servlet 3.0 创建一个基本的 Java Web 应用程序。 现在,我的应用程序需要运行一个基本的设置页面/表单,以便它知道在哪里存储配置文件等。什么是实现它的好方法?

我正在考虑一个过滤器,但由于我无法进行重定向,这似乎是错误的方式。

建议?

【问题讨论】:

  • 你是说巫师吗?你见过如何在 Websphere 中部署 WAR 吗?您必须浏览许多页面。
  • 嗯,它不是真正的巫师。只是一个带有几个字段输入的简单表单。
  • 您可以从过滤器内部进行重定向。没问题。 response.sendRedirect(...),就像在 servlet 中一样。

标签: java servlets web-applications servlet-3.0


【解决方案1】:

在我看来,Filter 将是您想要完成的工作的好方法:

@WebFilter
public class ConfigFilter implements Filter {
    @Inject
    private SessionBean session;

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        String requestURI = ((HttpServletRequest) request).getRequestURI();
        if(!session.hasConfig() && !requestURI.startsWith("/configWizard.xhtml")) {
            ((HttpServletResponse) response).sendRedirect("/configWizard.xhtml");
        }
        else {
            chain.doFilter(request, response);
        }
    }

    @Override
    public void destroy() {
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
}

【讨论】:

  • 是的,这会起作用,但我还需要检查请求不包含“configWizard”,否则它将进入循环?
  • 如果过滤器也映射到配置向导的 URL,那么是的,你应该做这个检查。
猜你喜欢
  • 2019-09-30
  • 1970-01-01
  • 2013-10-01
  • 2011-12-19
  • 2017-06-03
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
相关资源
最近更新 更多