总结:JSP脚本内置对象之request对象
request对象是HttpServletRequest的实例,每个request对象封装了一次用户请求,并且封装了该次请求的所有请求参数。另外,request也代表了本次请求的范围,从而可以操作request范围的属性。request对象的作用主要有三:
1、 获取请求参数/请求头(返回的都是String类型值或者是String类型值的集合)
获取请求头的常用方法
String getHeader(String name) 返回指定请求头名的属性值;
Enumeration getHeaderNames() 返回所有请求头名的集合对象;
Enumeration getHeaders(String name) 返回指定请求头名的多个属性值集合(当该请求头有多个值时);
实例:
<%
//取得所有请求头属性名的集合
Enumeration header = request.getHeaderNames();
while (header.hasMoreElements())
{
String headerName = (String) header.nextElement();
//取得指定属性名的请求头的属性值
String headerValue = request.getHeader(headerName);
//输出到页面
out.println(headerName + ":" + headerValue + " <br />");
}
%>
获取请求参数的常用方法
String getParameter(String name) 获取指定请求参数名的请求参数值;
Map getParameterMap() 获取所有请求参数名及请求参数值所组成的Map对象;
Enumeration getParameterNames() 获取所有请求参数名组成的集合对象;
String[] getParameterValues(String name) 获取指定请求参数名的请求参数值,当该请求参数有多个值时,返回的是其所有请求参数值组成的字符串数组;
示例:
<%
String userName = null;
String password = null;
//当是post方式生成的请求参数时
if (request.getMethod().equalsIgnoreCase("post"))
{
request.setCharacterEncoding("gbk");
//获得指定的请求参数值
userName = request.getParameter("username");
password = request.getParameter("password");
}
//如果是get方式生成的请求参数
else
{
//获得指定的请求参数值
userName = new String(request.getParameter("username").getBytes("iso-8859-1") , "gbk");
password = new String(request.getParameter("password").getBytes("iso-8859-1") , "gbk");
}
%>
一般来说,有name属性的表单域才会生成请求参数。一个有name属性的表单域对应一个请求参数值,name指定该请求参数名,value指定请求参数值;当多个表单域用相同的请求参数名时,则只会生成一个请求参数,但该请求参数有多个值;如果某个表单域设置了disabled=”true”,则该表单域不会生成请求参数。
2、 操作request范围的属性
setAttribute(String name, Object o) 将o设置成request范围的属性;
Object getAttribute(String name) 取得指定属性名的request范围属性;
获取request范围属性时,得到的类型总是Object,需要进行强制类型转换,并且,任何类型属性都可以被设置成为request范围的属性。
示例:
//定义一个Person类
Class Person
{
public String name;
public int age;
Person(String name , int age)
{
this.name = name;
this,age = age;
}
}
//在一个JSP页面中生成Person类的实例p,并且取得p的name属性,并设置成为request范围的属性
<%
Person p = new Person(“abc” , 20);
String name = p.name;
request.setAttribute(“person”, p);
request.setAttribute(“name”, name);
%>
<jsp:forward page=”target.jsp”/>
//在target.jsp中将可以接收到该request范围的属性
<%
Person p = (Person)request.getAttribute(“person”);
String name = (String)request.getAttribute(“name”);
out.println(p + “,” + “name”);
%>
3、 执行forward或者include
跟JSP提供的forward及include指令一样,动态将页面跳转到另一个页面或者将另一个页面动态插入到当前页面。实际上是通过getRequestDispatcher(String path) 方法获得RequestDispatcher类的一个实例,封装了希望跳转或者包含的页面目标路径(即形参path所代表的),再调用RequestDispatcher类实例的forward(ServletRequest request, ServletResponse response)方法执行页面forward跳转,或者include(ServletRequest request, ServletResponse response) 方法执行页面包含动作。
示例:(请注意:包含或者调整页面的路径前要以”/”开头)
<%
//跳转页面到getHeader.jsp
request.getRequestDispatcher("/getHeader.jsp").forward(request , response);
%>
<%
//将页面result.jsp包含进当前页面
request.getRequestDispatcher("/result.jsp").include (request , response);
%>
分享到:
相关推荐
base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz
NULL 博文链接:https://seanzhou.iteye.com/blog/2003197
我们考虑对LHC的ZZ信号区域中的四个带电轻子产生QCD辐射校正。 我们在QCD扰动理论中报告了此过程的下一个至下一个领先订单(NNLO)校正的完整计算。 数值结果显示为s = 8 TeV,使用ATLAS和CMS合作应用的典型选择方法...
BDD-ZZ1:ZZ1上的TD等基础知识-SQL
NULL 博文链接:https://greatwqs.iteye.com/blog/2429185
博文链接:https://lkfnn.iteye.com/blog/33600
我们看到的是变量fizzBuzz,其值是Priority对象。 此优先级封装了一个Echo对象和一个Concatenation对象,后者又封装了一个Buzz和Fizz对象。 相应的源代码写在。 用法 当前版本的Capsyl可以可视化对象的封装,...
ZZ500ETF:2019年年度报告.PDF
目前关于chatGPT的资料过于零散,没有详尽所有知识点、系统概述的文章,因此,笔者作了这篇总结性文章。 训练过程总览 理清演化路径 预训练(pretrain) GPT-3概述 GPT 3模型的理念 GPT-3如何学习 数据集 指令...
此 ZigZag 指标使用 Joe DiNapoli 算法。
klot的DT_ZZ指标的优化变量。
ZZFLEX 一个完善的iOS UI敏捷开发框架,基于UIKit/Foundation,包含常用控件的链式API拓展、一个命令式的列表控制器、一个事件处理队列,使用“模块化”的设计思路,致力于大大减小UI开发和维护的难度和工作量。 ...
指标 Dinapoli.
本人参加过国赛,并记忆了部分的脚本代码,现逆推做了一个相对完善的脚本文件,脚本内的参数仅供参考使用,主要还是让大家体验下脚本导出答案的快感。
ZZ 颜色折回是基于简单之字转向指标的。除了基础指标之外,颜色折回分析了波段变化的长度,把长期的波动用蓝色标记二短期的折回用红色标记。
ZZ561401.CAB ZZ561401.CAB ZZ561401.CAB
指标ZZ MTF XO A.