一般Servlet用于准备数据,即从http请求中获取参数值。例如我们要获取一个人的基本信息,那么通常我们事先会有一个Person类里面有属性name、age、address等等,通常情况下age定义为int类型,那么在Servlet中通常用long age = Integer.parsetInt(request.getParameter("age"));来处理,如果用户输入的是数值不会出现问题,但如果用户输入的是非数值那么就会报NumberFormatException运行时异常,这样异常信息就会直接到达客户端,太糟糕了,那么怎么处理呢?
基本思路就是准备一个默认值,如果是非数值的话就用默认值代替,否则就用正确的数值。代码如下:
public class ParamUtils {
public static long getParameter(ServletRequest request, String name, long defaultValue) {
String value = request.getParameter(name);
try {
return Integer.parseInt(value);
} catch (NumberFormatException e) {
return defaultValue;
}
}
public static long getParameter(ServletRequest request, String name) {
return getParameter(request, name, 0);
}
}