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");