第一,对于不支持POST的,可以简单的使用如下代码
if("POST".equals(request.getMethod())){
//正常进行
}else{
//异常请求
out.print("异常访问");
return;
}
如果是servlet,可以将doGet方法直接返回,不进行处理就行了
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse){
return;
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse){
//正常进行操作
}
还可以采用特定的标志来区分,比如
<form><inputtype="hidden"name="action"value="insert"/></form>
程序里这样判断
if("POST".equals(request.getMethod())&&("insert".equals(request.getParameter("action")))){
//正常进行
}else{
//异常请求
out.print("异常访问");
return;
}
第二,判断提交的来源referer,代码如下
if("POST".equals(request.getMethod())){
Stringreferer=request.getHeader("referer");
if(referer==null||!referer.startsWith("http://"+request.getServerName())){
//非法来源
return;
}
//正常进行
}else{
//异常请求
out.print("异常访问");
return;
}
第三防止重复提交的hashCode
在表单显示页面
//生成一个formhash,算法可以自己定,不随便重复就可以了
Stringformhash=MD5.encode(Long.toString(newDate().getTime()));
//读取当前session里面的hashCode集合,此处使用了Set,方便判断。
Set<String>formhashSession=(Set<String>)session.getAttribute("formhashSession");
if(formhashSession==null){
formhashSession=newHashSet<String>();
}
//检测重复问题
while(formhashSession.contains(formhash)){
formhash=MD5.encode(Long.toString(newDate().getTime()));
}
//保存到session里面
formhashSession.add(formhash);
//保存
session.setAttribute("formhashSession",formhashSession);
表单里面增加如下字段
<inputtype="hidden"name="formhash"id="formhash"value="<%=formhash%>"/>
在表单提交页面进行如下处理
//拿到表单的formhash
Stringformhash=upload.getParameter("formhash");
//拿到session里面的集合
Set<String>formhashSession=(Set<String>)session.getAttribute("formhashSession");
//如果没有,则是重复提交,或者非法提交
if(formhashSession==null||!formhashSession.contains(formhash)){
out.println("请不要重复提交!");
return;
}
//下面进行其它的操作
//
//最后,如果操作成功,从session里面把这个formhash删掉!
//以免用户少填写了某个字段,造成表单无法再次提交
formhashSession.remove(formhash);
session.setAttribute("formhashSession",formhashSession);
以上内容为本人原创内容,如要转载,请保留完整信息。并注明来源为http://blog.youkuaiyun.com/或http://www.Java2000.net,







如果是servlet,可以将doGet方法直接返回,不进行处理就行了






还可以采用特定的标志来区分,比如

程序里这样判断







第二,判断提交的来源referer,代码如下












第三防止重复提交的hashCode
在表单显示页面















表单里面增加如下字段

在表单提交页面进行如下处理















以上内容为本人原创内容,如要转载,请保留完整信息。并注明来源为http://blog.youkuaiyun.com/或http://www.Java2000.net,