天天看点

参数问题|学习笔记

开发者学堂课程【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()接收