JSP基础——属性保存范围和request对象
JSP属性保存范围
JSP中提供了四种属性保存范围,分别为page,request,session及application。
1、page范围,指设置的属性只在当前页面有效。通过pageContext的setAttribute()方法来设置属性,通过pageContext的getAttribute()来取得属性.
代码范例:
<%
pageContext.setAttribute("name","James");
%>
<%
String str=(String)pageContext.getAttribute("name");
%>
2、request范围,指属性在一次请求范围内有效。如果页面从一个页面跳转到另一个页面,那么该属性就失效了。这里的跳转指的是客户端跳转。服务器端跳转使用<jsp:forward>,该属性仍然有效。
通过request的setAttribute()方法来设置属性,通过request的getAttribute()方法来取得属性。
代码范例:
主页面:
<%
request.setAttribute("name","James");
%>
<a href="aa.jsp">跳转到aa</a>
跳转页面:
<%
String str=(String)request.getAttribute("name");
%>
3、session范围,也就是客户浏览器与服务器一次会话范围内,如果和服务器断开连接,那这个属性就失效了。
通过session的setAttribute()方法来设置属性,通过session的getAttribute()方法来取得属性。
如果重新打开浏览器,就不能获得session范围属性了,因为会话已经结束。
4、application范围,指整个服务器范围,直到服务器停止以后才会失效。
通过application的setAttribute()方法来设置属性,通过application的getAttribute()方法来取得属性。
只要服务器不重启,就能够在任何页面中获得application范围保存的属性,重新打开浏览器也可以。
5、移除属性:通过调用相应对象的removeAttribute()方法就可以移除指定属性。
Request对象
request对象不但可以用来设置和取得request范围变量,还可以用来获得客户端请求参数,请求的来源,表头,cookies等。
1、获得客户端请求参数,包括:
getParameter(String name) 获得参数名为name的参数值;
getParameterNames() 返回一个Enumeration,获得所有参数的名称;
getParameterValues(String[] name) 获得参数名为name的所有参数
getParameterMap() 返回Map,获得所有参数封装的Map实例。
代码范例:
首先使用表单提交一个参数:
<form action="request.jsp" method="post">
用户名:<input type="text" name="username"/>
<input type="submit" value="提交"/>
</form>
在request.jsp页面中,接收参数:
<%
String username=request.getParameter("username");//如果为中文的话,需要设置pageEncoding。
out.println(username);
%>
代码范例:获取所有的参数名称,
主页中设置多个参数,表单提交:
<form action="request.jsp" method="post">
用户名:<input type="text" name="username"/>
密码:<input type="password" name="userpassword"/>
<input type="submit" value="提交"/>
</form>
在request.jsp页面中接收所有参数:
<%
Enumeration e=request.getAParameterNames();
while(e.hasMoreElements()){
String str=(String)e.nextElement();
out.println(str);
}
%>
通过搭配getParameterNames()和getParameter(),可以很方便的获取所有参数的参数值,对上述代码进行修改:
<%
Enumeration e=request.getAParameterNames();
while(e.hasMoreElements()){
String str=(String)e.nextElement();
String strRequest=request.getParameter(str);
out.println(str+":"+strRequest+"<br/>");
}
%>
有些情况下一个参数可能拥有多个参数值,比如多选框,多选列表。要接收多个参数值,就需要使用request对象的getParameterValues()方法。
<form action="request.jsp" method="post">
用户名:<input type="text" name="username"/>
密码:<input type="password" name="userpassword"/>
喜欢的运动:
<input type="checkbox" name="sport" value="pingpang">乒乓球
<input type="checkbox" name="sport" value="basketball">篮球
<input type="checkbox" name="sport" value="football">足球<br/>
<input type="submit" value="提交"/>
</form>
在request.jsp页面中修改代码:
<%
String[] strArr=request.getParameterValues("sport");
out.println("喜欢的运动:");
for(String str:strArr){
out.println(str);
}
%>
最后,可以通过request对象的getParameterMap()方法来获得封装所有参数值的Map对象。通过该Map对象可以获得指定参数的参数值。
代码范例:
<%
Map mapParamter=request.getParameterMap();
String[] strUsername=(String[])mapParamter.get("username");
……
%>
JSP基础——属性保存范围和request对象的更多相关文章
- jsp中国文字形式提交,request对象获取乱码
jsp表单提交中文字符,request对象获取时乱码解决方法 第一种: 在request对象获取页面Charset中的"C"大写,且页面无中文字符,最好用英文,否则MyEclips ...
- Servlet&jsp基础:第五部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 03-【request对象获取请求的数据 & request对象存取值】
request概述(封装了客户端所有的请求数据) request是Servlet.service()方法的一个参数,类型为javax.servlet.http.HttpServletRequest.在 ...
- 通过Request对象对cookie的设置、获取
<html> <head></head> <body> <% request.setCharacterEncoding("UTF-8&q ...
- request对象和response对象的作用和相关方法
response对象(响应) 响应行 状态码 :setStatus(int a) 设置状态码 302重定向 304控制缓存 响应头 setHeader() 一个key对应一个value addHead ...
- 【JSP】JSP基础学习记录(三)—— JSP的9个内置对象
本节说一下JSP中的9个内置对象.这9个内置对象都是Servlet API接口的实例,只是JSP规范对他们进行了默认初始化(由JSP页面对应Servlet的_jspService()方法来创建这些实例 ...
- JSP内置对象——out对象/request对象
在这个科技高速发展的时代,迫使我们的脚步一刻都不能停下. 在这个for循环语句当中,我们可以直接使用jsp内置对象中的out对象来给浏览器打印输出,那么这个out对象就是一个内置对象, 在这里,我们使 ...
- JSP内置对象——request对象
request对象request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息.系统信息.请求方式和请求参数等. 通过request对象提供的各种方法可以处理客户端浏览器提交的 ...
- JSP中Out和Request对象详解
内置表示不需要new便可直接使用. 一.基础知识 1.缓冲区:IO最原始是一个一个字节的读取,这就像吃米饭的时候一粒一粒的吃,很没有效率,这时候就有了碗,一碗一碗的吃,岂不痛快. 2.Get提交不能超 ...
随机推荐
- Sql 获取向上取整、向下取整、四舍五入取整的实例
[四舍五入取整截取] select round(54.56,0) [向下取整截取] SELECT FLOOR(54.56) [向上取整截取] SELECT CEILING(13.15) --MS ...
- java 排序
class Employee { private String name; private String id; private String salary; public static void m ...
- VisualSVN5.0.1补丁原创发布
VisualSVN5.0.1补丁原创发布
- android studio集成融云 SDK 后在部分机型启动对话时崩溃
最初构建项目是 eclipse, 后来切换到 android studio来做开发. 后来多个用户反馈在android4.4机型上存在启动对话崩溃的问题.但是IOS 版工程从来没有重现. 调试报错信息 ...
- 使用jQuery实现点击左右滑动切换特效
使用jQuery实现点击左右滑动切换特效: HTML代码如下: <!--整体背景div--> <div class="warp"> <!--中间内容d ...
- boost和std中的thread的引用参数
boost 1.60.0 先上代码: #include <boost/thread.hpp> #include <iostream> void add(int &i) ...
- pb自动注册ole控件
方法一: 1.手工注册OCX控件 将该控件随程序一起发布,然后,将此文件拷到windows\system,或者直接放在本运行目录,然后执行dos命令,run( "regsvr32 *. ...
- Apple Pay的快速实现
一.在Apple开发者中心配置 AppleID 和 Merchant IDs 二.配置好证书后在Xcode中开启Apple Pay 三.代码实现 3.1 判断是否支持Apple Pay,如果支持又将支 ...
- jQuery是什么?
jQuery就是javascript的一个库,把我们常用的一些功能进行了封装,方便我们来调用,提高我们的开发效率. 极大地简化了 JavaScript 编程. Javascipt跟jQuery的区别: ...
- 云计算 云服务 hadoop
云:是一种虚拟化的技术,重在资源管理. 云服务是云计算的一种商业模式,有三个层次: Iaas:场外服务器,存储和网络硬件:节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用 Paas ...