我的一个servlet是做集中控制处理的,用于转发.
怎么样防止他人直接输入此servlet的映射地址进来\怎么样判断传过来的参数是空的(包括他在参数后面敲的空格)
我希望有人能给一个严整的判断.
我的例子:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if(request.getQueryString() == null) {
return;
}
String method = request.getParameter("method");
else if(method == null) {return;}
else if(method.equalsIgnoreCase("addbook")) {addBook();}
else if(method.equalsIgnoreCase("delbook")) {delBook();}
else if(method.equalsIgnoreCase("updatebook")) {updateBook();}感觉思路好乱啊......
我希望能得到一个严格的判断,以能灵活地运用在以后的项目中.

解决方案 »

  1.   

    boolean allEmpty=false;
    Enumeration paraEnum = request.getParameterNames();
    while (paraEnum.hasMoreElements()) {
    String para = (String) paraEnum.nextElement();
    String[] params=request.getParameterValues(para);
    if(params!=null&&params.length>0){
    allEmpty=true;
    break;
    }
    }
    return allEmpty;
      

  2.   

    jarez(Jarez) 你这样做还是不能防止用户输入的空格啊
      

  3.   

    如果referer为空,说明他是直接输入的. request.getHeader("referer")
    如果request.getQueryString("要判断的那个参数") == null 或者trim之后==""
    则是没有参数或者参数值为空.