Servlets 在Struts 1的查询中禁用主体参数

Servlets 在Struts 1的查询中禁用主体参数,servlets,struts-1,Servlets,Struts 1,在应用程序中经常使用登录页面时,会使用一个DynaValidatorForm,单击“提交”会发出包含用户用户名和密码的POST请求。然后在关联的action类中对其进行验证和处理 服务器代码: protected ActionForward performAction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) t

在应用程序中经常使用登录页面时,会使用一个
DynaValidatorForm
,单击“提交”会发出包含用户用户名和密码的POST请求。然后在关联的action类中对其进行验证和处理

服务器代码:

protected ActionForward performAction(ActionMapping mapping,
        ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {    
    DynaValidatorForm dynaForm = (DynaValidatorForm) form;
    //validation here 
    //...
    //
    Login login = new Login();
    PropertyUtils.copyProperties(login, dynaForm);
    //login object is used from here on out
但是,可以通过使用URL中的参数发出GET请求来登录,即
www.my-site.com/LoginPage.do?loginName=username&password=password

有没有办法禁止Struts在表单中使用URL参数?

我目前的解决方法是使用一个过滤器来检查查询字符串,并重定向它是否包含应该在帖子正文中的参数,但我正在寻找一个更优雅的解决方案。我不能仅仅禁用GET,因为需要类似解决方案的其他一些页面需要GET访问


非常感谢您的帮助

您可以检查requests的方法,并在获取请求时从操作返回

if(request.getMethod().equalsIgnoreCase("GET")
    return mapping.findForward("error");