2

我有一个安全问题,我不知道如何在 JSF 中执行此操作。在 PHP 中,我可以对定义为 POST 的表单提交做出反应,我只想通过 POST 获取值,因此无法通过 GET 从字段的相同名称获取值。

示例:
表单中的字段名:
我的 PHP 站点中的用户名我可以通过$_POST["username"]但不能通过获取值$_GET["username"],因为我没有实现 GET 方式,只有 POST。

所以,现在我也想在我的 JSF 站点中使用它。
问题是,我不能只为所有请求实现 POST,我还必须对 GET 做出反应。
我只希望我的表单数据将通过 POST 发送到我的 bean,而不是通过 GET。

我怎样才能做到这一点?用过滤器还是别的什么?为了您的兴趣:我无法在我的应用程序中使用 JavaScript。

非常感谢!

4

2 回答 2

4

我不确定我是否理解您的问题,但如果您只需要检查是否使用 POST 或 GET 调用了支持 bean 上的方法,您可以从 HttpServletRequest 对象中获取该信息,如下所示:

  @ManagedBean(name="myBean")
  @ViewScoped
  public class MyMBean implements Serializable{



    public void handleForm(){

        HttpServletRequest req = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();

        if(req.getMethod().equalsIgnoreCase("POST")){

            //Handle your form data
        }
    }
于 2012-08-02T07:38:32.207 回答
2

只是检查FacesContext#isPostback()

if (FacesContext.getCurrentInstance().isPostback()) {
    // It's a JSF POST request.
}
于 2012-08-02T11:43:20.233 回答