日期:2014-05-18  浏览次数:20860 次

在servlet中如何全面判断参数为空???
我的一个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();}

感觉思路好乱啊......
我希望能得到一个严格的判断,以能灵活地运用在以后的项目中.

------解决方案--------------------
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;
------解决方案--------------------
String类有个方法叫trim()
------解决方案--------------------
如果referer为空,说明他是直接输入的. request.getHeader( "referer ")
如果request.getQueryString( "要判断的那个参数 ") == null 或者trim之后== " "
则是没有参数或者参数值为空.