我在用 SPRING,STRUNTS,IBATIS 框架做WEB的时候,发现虽然我用post提交登录的时候能成功,但我直接在浏览器用http://127.0.0.1/login?user=abc&password=123 也能成功问下,如何只能post提交 我是用get set 来获取表单值

解决方案 »

  1.   

    <form name="form1" method="post" action="login">
          <span>用户名</span>
          <input name="user" type="text">
                     &nbsp;&nbsp;<span>密码</span>
                     <input name="password" type="password">
                  <input type="submit" class="button2" value="登录" maxlength="16">
        </form>
      

  2.   

    你用的是struts1的话 在action里面 把get方法当中调用post方法的语句去掉 设成空 它就不会调用get了
      

  3.   

    struts2就要去struts-default里面找了  看看你的execute继承的那个方法里面 有关get post的描述改就行了。。
    不过一般不影响吧?
      

  4.   

    用的是struts2吧,这个正常的,你在action中定义了参数user和password,当你在地址栏敲该地址的时候程序并没有走你的form1,而是直接把这两个参数的值赋给了action,并且直接调用了action,和你的form表单的提交方式是没有任何关系的
      

  5.   

    像这种情况就要考虑到URL安全问题,你需要处理直接通过URL访问应用程序的拦截器,也就是过滤URL地址,保证系统安全
      

  6.   

    不同的framework,还有不同的j2ee版本,有不同的解决方案:比如加filter,配置成只映射LoginAction,而且咋代码中判断只针对GET请求(如下)。甚至如果用apache的话,还能直接配置apache url rewrite:login请求,如果querystring中有password,直接去错误页面。if ("GET".equals(request.getMethod())) {
      // 出错,返回警告页面
    }
      

  7.   

    用filter,对url的合法性进行检查。
      

  8.   

    查看获取的方式request.getMethod()