总结: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
JSP提供了六个内置对象,它们分别是: 1. **out对象**: 用于向客户端输出数据。 2. **response对象**: 提供对HTTP响应消息的控制。 3. **request对象**: 包含了客户端发送的所有请求信息。 4. **application对象**:...
《MetaTrader 5脚本——Dinapoli_ZZ ZigZag指标详解》 MetaTrader 5(MT5)是一款广泛应用于外汇、期货和股票市场的交易平台,它以其强大的图表分析功能和灵活的交易系统深受交易者喜爱。在这个平台中,用户可以...
我们考虑对LHC的ZZ信号区域中的四个带电轻子产生QCD辐射校正。 我们在QCD扰动理论中报告了此过程的下一个至下一个领先订单(NNLO)校正的完整计算。 数值结果显示为s = 8 TeV,使用ATLAS和CMS合作应用的典型选择方法...
《DT_ZZ_optimized - MetaTrader 4脚本:深入解析与优化技术》 MetaTrader 4(MT4)是一款广泛应用于外汇、期货和股票交易的交易平台,它提供了丰富的技术分析工具和自动化交易功能。在MT4平台中,用户可以编写...
《Dinapoli ZZ (ZigZag) - MetaTrader 4 脚本解析》 在金融市场中,交易者常常需要借助各种技术工具来分析市场趋势,以便做出明智的投资决策。Dinapoli ZZ (ZigZag) 指标就是其中的一种,它是一种在 MetaTrader 4 ...
**MetaTrader 4平台及其脚本编程** MetaTrader 4(MT4)是全球金融市场广泛使用的交易平台,尤其在外汇交易中。它由MetaQuotes Software Corp公司开发,为交易者提供了实时报价、图表分析、交易执行以及自动交易...
在MT5的世界里,“ZZ_YZ_MDAC_ELDER 1-1000 - MetaTrader 5脚本.zip”是一个特别的压缩包,内含了一个结合了Elder彩色柱形和MDAC(Market Data Access Component)指标的脚本。 Elder彩色柱形是伊利亚·布林格...
我们考虑在强子碰撞中对四个带电轻子产生的QCD辐射校正。 我们提出了对环路诱导的胶子融合贡献的次要领先的QCD校正的计算。 我们的预测首次包括了夸克-胶子声子通道。 形式上为OαS 3 $$ \ mathcal {O} \ left({\ ...
标题中的“ZZ: 时间管理方法(转贴)”表明这是一篇关于时间管理的文章,可能是从其他地方转载而来。从描述中的“博文链接:https://lkfnn.iteye.com/blog/33600”我们可以推测,这是一篇在ITeye技术社区发表的博客...
Java线程池是一种高效管理...总结来说,Java线程池通过合理的线程管理和任务调度,实现了对系统资源的有效利用,提升了程序的并发性能。理解并掌握线程池的设计思想和使用技巧,有助于编写出更高效、稳定的并发程序。
7. **FileSystemObject**:ASP内置的对象模型之一,用于执行文件系统操作,如读写文件、创建目录、删除文件等。例如,`FSO.OpenTextFile()`可以打开一个文本文件进行读取。 8. **数据库连接**:ASP可以用来处理...
标题中的“2021年网络搭建与应用国赛样卷6参考脚本.zip”表明这是一个与网络构建和应用相关的比赛试题,其中包含了用于解答竞赛问题的脚本代码。这通常意味着这些脚本可能涉及网络配置、数据传输、网络安全、路由...
我们看到的是变量fizzBuzz,其值是Priority对象。 此优先级封装了一个Echo对象和一个Concatenation对象,后者又封装了一个Buzz和Fizz对象。 相应的源代码写在。 用法 当前版本的Capsyl可以可视化对象的封装,...
目前关于chatGPT的资料过于零散,没有详尽所有知识点、系统概述的文章,因此,笔者作了这篇总结性文章。 训练过程总览 理清演化路径 预训练(pretrain) GPT-3概述 GPT 3模型的理念 GPT-3如何学习 数据集 指令...
### Shell脚本编程知识点概述 #### 一、Shell脚本的重要性 - **提高效率**:Shell脚本能够显著提升用户操作以及系统管理员进行系统管理的效率。 - **自动化任务**:通过编写脚本来自动化日常任务,减少重复劳动。 -...
这个压缩包"BDD-ZZ1:ZZ1上的TD等基础知识-SQL"显然聚焦于在ZZ1环境中使用SQL,特别是与Teradata相关的基础概念和技巧。 首先,让我们深入了解SQL。SQL是用于管理关系数据库的标准语言,包括创建、更新、查询和管理...
13. 几何对象的跟踪功能:ZZ 超级画板可以跟踪更多的几何对象,包括点、线、圆、圆锥曲线函数曲线等。 14. 生成表格和统计表的功能:ZZ 超级画板可以生成表格和统计表,自动填表和绘制统计图表。 15. 右键菜单功能:...
【zz_OLD_proton:最小类型脚本项目模板】是一个针对TypeScript开发的项目模板,它为初学者或有经验的开发者提供了一个简洁、规范的起点,用于快速搭建新的开发项目。这个模板预设了一些关键的工具和配置,使得项目...