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对象的更多相关文章

  1. jsp中国文字形式提交,request对象获取乱码

    jsp表单提交中文字符,request对象获取时乱码解决方法 第一种: 在request对象获取页面Charset中的"C"大写,且页面无中文字符,最好用英文,否则MyEclips ...

  2. Servlet&jsp基础:第五部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. 03-【request对象获取请求的数据 & request对象存取值】

    request概述(封装了客户端所有的请求数据) request是Servlet.service()方法的一个参数,类型为javax.servlet.http.HttpServletRequest.在 ...

  4. 通过Request对象对cookie的设置、获取

    <html> <head></head> <body> <% request.setCharacterEncoding("UTF-8&q ...

  5. request对象和response对象的作用和相关方法

    response对象(响应) 响应行 状态码 :setStatus(int a) 设置状态码 302重定向 304控制缓存 响应头 setHeader() 一个key对应一个value addHead ...

  6. 【JSP】JSP基础学习记录(三)—— JSP的9个内置对象

    本节说一下JSP中的9个内置对象.这9个内置对象都是Servlet API接口的实例,只是JSP规范对他们进行了默认初始化(由JSP页面对应Servlet的_jspService()方法来创建这些实例 ...

  7. JSP内置对象——out对象/request对象

    在这个科技高速发展的时代,迫使我们的脚步一刻都不能停下. 在这个for循环语句当中,我们可以直接使用jsp内置对象中的out对象来给浏览器打印输出,那么这个out对象就是一个内置对象, 在这里,我们使 ...

  8. JSP内置对象——request对象

    request对象request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息.系统信息.请求方式和请求参数等. 通过request对象提供的各种方法可以处理客户端浏览器提交的 ...

  9. JSP中Out和Request对象详解

    内置表示不需要new便可直接使用. 一.基础知识 1.缓冲区:IO最原始是一个一个字节的读取,这就像吃米饭的时候一粒一粒的吃,很没有效率,这时候就有了碗,一碗一碗的吃,岂不痛快. 2.Get提交不能超 ...

随机推荐

  1. php生成图片缩略图,支持png透明

    注:此功能依赖GD2图形库 PHP生成缩略图类   <?php /* * desc: Resize Image(png, jpg, gif) * author: 十年后的卢哥哥(http://w ...

  2. json转类

    JavaScriptSerializer js = new JavaScriptSerializer();T detaile = js.Deserialize<T>(json);

  3. Python future模块

    今天看到了Pyhon中的模块__future__,查了一下资料,感觉这个module很有用. 从python2.1开始以后, 当一个新的语言特性首次出现在发行版中时候, 如果该新特性与以前旧版本pyt ...

  4. python学习08——类

    笨办法学python第42节,这节讲的是类,程序沿用上一节中一个游戏,不同的是这一节用了类的方法. 其中改动的代码主要如下 原来的最后几句用了这样的代码: ROOMS = { 'death':deat ...

  5. Oracle中SQL查询表字段基本信息、主键、外键(转)

    select utc.column_name, utc.data_type, utc.data_length, utc.data_precision, utc.data_Scale, utc.null ...

  6. 移除project,testsuite,testcase级别所有的custom properties

    // Remove all custom properties on Project level. If removed, custom properties cannnot be injected ...

  7. java1234初学maven

    第一讲: maven maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. maven安装与下载: .确定jdk已经安装并且配置 .安装mav ...

  8. pdf2swf , xpdf 部分用法

    http://hi.baidu.com/abpsoft/item/1d1eb0f50c9d1fd86225d2c0 pdf2swf详细参数使用说明 官方地址:http://www.swftools.o ...

  9. AngularJs angular.identity和angular.noop详解

    angular.identity 函数返回本身的第一个参数.这个函数一般用于函数风格. ----------以上是官网对该接口的说明,只能说这个文档写得也太二,让人完全看不懂.要理解它的用途,可直接看 ...

  10. 使用checkbox做出radiobutton的效果

    首先分别使用不同name的checkbox放在同一个tr的两个td内.并为他们设置onclick事件来改变点击后状态. php: str[info]="<table align='ce ...