开发者学堂课程【Java 面试疑难点串讲 4:Java Web 开发:参数问题】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/27/detail/593
参数问题
内容介绍:
1) 参数传递的两大困扰
2) 在 JSP 中接收参数的三种方法
3) 参数接收可能出现的问题
4) 参数的来源
5) 对于参数的类型的控制
参数传递的两大困扰
1. 无法确认参数的来源
2. 对于参数的类型的控制
在 JSP 中接收参数的三种方法
在 JSP 里面(HttpServletRequest) 接收参数只提供有三种方法:
1. 接收单个参数:public String getParameter(String param);
2. 接收一组参数(参数名称相同、复选框): public String [] getParameterValues(String param);.
3. 接收全部的参数名:public Enumeration getParameterNames();
所有开发框架内部都封装了此方法,最典型的代表:参数与简单 Java 类对象的互相转型。
参数接收可能出现的问题
1.参数并没有提交,用户很可能是通过非法途径进入的系统;
2.正常提交了,但是由于某些浏览器的问题,提交的数据不是 null,而是空字符串;
<%@ page pageEncoding="UTF-8"%>
<h1>接收参数:<%=request.getParameter("msg")%></h1>
<h1>接收参数:${param.msg}</h1>
路径:http://localhost:8888/mldn/show.jsp?msg=
于是现在发现提交的数据不是 null,但是也没有字符串的内容、所以最终的结果是“""”;
3.提交的数据是非法的数据,也就是所谓的服务器端的验证处理操作,在此环节会使用两种形式:客户端编写 JS 进行数据验证,同时在服务器端编写 Java 程序进行验证,真正有用的是服务器的验证,因为用户的浏览器可以屏蔽掉 JS ,所以为了保证数据的安全,最好的方法是两种方法都使用,之所以使用 JS 的验证,主要的目的就是为了增加界面的互动性,因此如果某些内容是不允许为空的情况下,那么要进行验证就必须验证 null 与空字符串两个内容,才可以完成是否为空的确认。
参数的来源
参数的来源有如下几种:表单提交、地址重写、标签指令传递的参数(分页)
对于参数的类型的控制;
从实际的开发来看,最为常用的几种数据类型:int、double、String,因此对于这几种类型就必须做好相关的验证处理;
对于表单封装的情况而言,框架可以帮助用户更好的进行提交数据的处理,如果是自己实现的则必须处理好请求类型,否则数据无法正常使用 request.getParaemter()接收