开发工具与关键技术:Tomcat,Sublime Text,java
在request对象里面一直使用的接收参数的方法是:public String getParameter(String Str),这个方法的主要功能是接收一个请求参数,但是对于参数来源需要注意,参数来源有三,分别是:
- 表单提交;
- 标签指令传递(如:jsp:include);
- 地址重写;
最为常见的形式是地址重写传递参数,其基本结构为:xxx.jsp?参数名称=内容
如:
<a href="input.jsp?name=asd&id=1">地址重写</a>
此时相当于向input.jsp页面传递了连个参数,参数名分别为name与ID;
Jsp页面代码 如下:
<%@ page pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<h1>输入内容:<%=request.getParameter("name")%></h1>
<h1>输入内容:<%=request.getParameter("id")%></h1>
打开htm页面,结果如下:
其实所谓的地址重写就相当于Get请求;对于request.getParameter()而言,它只能接受一个请求参数;如果传递的是多个同名参数,那么getParameter()方法只能够接受第一个参数内容。
如果需要接受多个参数内容,则需要更换方法
如:htm页面代码为:
<meta charset="utf-8">
<FORM action="input.jsp" method="get">
请选择:
<input type="checkbox" name="id" id="id" value="语文">语文
<input type="checkbox" name="id" id="id" value="数学">数学
<input type="checkbox" name="id" id="id" value="英语">英语
<input type="checkbox" name="id" id="id" value="生物">生物
<input type="checkbox" name="id" id="id" value="地理">地理
<input type="checkbox" name="id" id="id" value="化学">化学
<input type="checkbox" name="id" id="id" value="历史">历史
<input type="checkbox" name="id" id="id" value="政治">政治
<br>
<input type="submit" value="提交">
</FORM>
这是一个多选框,如果用getParameter()方法的话无论如何它都只能获取第一个参数,即使进行选择了也无济于事;这时候选择getParameterValues()方法,并对所选的选项进行for循环,代码如下:
<%@ page pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String result[] =request.getParameterValues("id");
%>
<h1>输入内容:
<% for (int x=0;x<result.length ; x++) {
%>
<%=result[x]%>、
<%
}
%>
</h1>
结果如下:
getParameterValues()可以接收一组内容;在进行参数接受的过程中,除了可以使用之前这两种方法外,还有另外一种方法求参数的名称,该方法为:public Enumeration getParameterNames();
如果有些时候参数多或者不确定多少参数的时候,可以试试该方法实现参数名称接受。