JAVA中从WEB请求中提取参数使用Servlet里HttpServletRequest类的getParameter方法,如下从URL中提取page参数和uuid参数,示例如下:本文地址:http://47.93.183.36/article/867.html,未经许可,不得转载.
int pagenum = Integer.valueOf(request.getParameter("page")); String uuid = request.getParameter("uuid");本文地址:http://47.93.183.36/article/867.html,未经许可,不得转载.
但在使用的时候发现URL传了参数不写值时服务端接收到的是空字符串不会报错,但URL中如果不带这个参数,就会报错:java.lang.NumberFormatException: null at java.base/java.lang.Integer.parseInt(Integer.java:614) at java.base/java.lang.Integer.valueOf(Integer.java:983)。即URL中不传参的时候提取到的值是null,而这个null传给 Integer.valueOf 或者 Integer.parseInt 方法就会报错。另外在进行Integer.valueOf整数处理的时候,如果传入的数据是字符串,也会报错,都需要进行异常处理。如下:本文地址:http://47.93.183.36/article/867.html,未经许可,不得转载.
#参数处理代码,调用help中的数字判断。 int page = 1; if(request.getParameter("page") != null ){ if(Help.isNumeric(request.getParameter("page"))) { page = Integer.valueOf(request.getParameter("page")); } } #Help.isNumeric方法代码: public static boolean isNumeric(String str) { Pattern pattern = Pattern.compile("[0-9]*"); Matcher isNum = pattern.matcher(str); if( !isNum.matches() ){ return false; } return true; }本文地址:http://47.93.183.36/article/867.html,未经许可,不得转载.
整个过程要先进行null判断,再判断是否纯数字,然后再进行Integer.valueOf处理。真感觉挺麻烦的,HttpServletRequest类应该提供一个request.getParameterDefault方法,另外在字符串转整型的时候我觉得也不妥当。HttpServletRequest类方法很多,都是提取URL请求时的各项数据,常用的方法和意义列表如下:本文地址:http://47.93.183.36/article/867.html,未经许可,不得转载.
getRequestURL() //获取URL
getQueryString() //获取参数列表,适用于GET,提取URL中?号后面的内容。
request.getMethod(); //获取请求方式 get和post都可用,
request.getParameter("test"); //获取参数值value get和post都可用,不适用contentType为multipart/form-data
request.getParameterNames(); //获取所有参数key get和post都可用,注:不适用contentType为multipart/form-data
request.getContentType(); //获取请求类型 get和post都可用,如application/json ,multipart/form-data, application/xml等
request.getParameterMap(); //获取取参数请求集合 get和post都可用,注: 不适用contentType为multipart/form-data
request.getInputStream() //获取文本流,适用于如:application/json,xml,multipart/form-data文本流本文地址:http://47.93.183.36/article/867.html,未经许可,不得转载.
本文地址:http://47.93.183.36/article/867.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
手机扫码直接打开本页面 |