java web学习基础(三)4中属性范围 request对象 response对象

来源:互联网 发布:visio 软件开发流程图 编辑:程序博客网 时间:2024/06/16 22:04

4中属性page、request、session、application;

page,只在一个页面中保存属性,跳转之后无效。

request,只在一次请求中保存,服务器跳转后依然有效。

session,在一次会话范围中,无论任何跳转都可以使用,但是新打开的浏览器无法使用。

application,在真个服务器上保存,所有用户可以使用。

以上4个内置对象都支持下表的属性操作方法。

no. 方法类型描述1public void setAttribute(String name,  Object  o)普通 设置属性的名称和内容2public  Object   getAttribute(String  name)普通根据属性名称取得属性3public void removeAttribute(String  name)普通删除指定的属性


page属性范围(pageContext)

<%pageContext.setAttribute("name","fzy"); %>

<%String name=(String)pageContext.getAttribute("name");%>

<%=name%>



request属性范围

注意一点是,通过<jsp:foward page="aa.jsp"/>下个页面可以获得页面设置的属性值。   通过超链接<a  herf="aa.jsp">jsp</a> 下个页面不会获得属性值。

request.setAttribute();

request.getAttribute();


session属性范围

通过超链接或者跳转都可以获得属性值。

session.setAttribute();

session.getAttribute();



application属性范围

通过超链接或者跳转都可以获得属性值。

application.setAttribute();

application.getAttribute();



深入研究page属性范围

public  voidsetAttribute(String name,  Object   value ,   int  scope);

NO.方法类型描述1public static  final int PAGE_SCOPE常量表示page属性范围,默认2public static  final int  REQUEST_SCOPE
常量
表示request属性范围,默认
3public static  final int   SESSION_SCOPE
常量
表示session属性范围,默认
4public static  final int   APPLICATION_SCOPE
常量
表示application属性范围,默认

<%page.setAttribute("name","fzy"   ,PageContext. REQUEST_SCOPE);%>可以实现请求跳转。




request对象

request内置对象是使用最多的一个对象,器主要作用是接受客户端发送而来的请求信息。例如请求的参数,发送的头信息等。

简单介绍一下几个常用的方法。

public String getParameter(String name)接受客户端发来的请求参数。

public String[ ]  getParameterValues(String name);   取的客户端发来的一组请求参数内容

public Enumeration getParameterNames();   取得全部请求参数的名称

public String getRemoteAddr()   得到客户端的IP地址

public  Httpsession  getSession()  取得当前的session对象

public   String  getContextPath()  取得上下文资源路径

public Enumeration getHeaderNames()取得全部请求的头信息名称

public String getMethod()取得用户提交的方式。

 


request.setCharacterEncodint("GBK"):  设置统一编码

在接受参数请求时,单一的参数可以使用getParameter()接受, 而像复选框就需要使用getParameterValues()来接受参数



get和post方法区别

使用get方法提交的内容会在浏览器地址栏进行显示,所以信息长度大小有限制一般是 4-5K左右。post提交的请求不会在地址栏显示,直接显示的是目标地址。


request内置对象还有一个灵活的方法是getParameterNames(),获得所有请求参数的名称,此方法返回的是一个Enumeration,所以需要使用hasMoreElements()方法判断是否有内容以及使用nextElement()方法取出内容。




response对象

response对象主要作用是对客户端请求的回应,将web服务器处理后结果发回给客户端。

response常用的方法有

NO方法类型描述1public void   addCookie(Cookie   cookie)普通向客户端增加cookie2public   void  setHeader(  String  name,   String   value)普通设置回应的头信息3public    void  sendRedirect(  String  location)  throws  IOException普通页面跳转设置页面定时刷新页面使用的最多,response.setHeader("refersh" ,"  2");本页面每2秒刷新一次。

通常读者会经常遇到3秒返回首页也是用的refersh。  <%response.setHeader("refresh" ," 3;URL=hello.htm");%>

页面的跳转也可以用 response.sendRedirect("hello.htm");

下面是<jsp:forward page=""/>  和response.sendRedirect();          两种方法第一种<jsp:forward page=""/>是服务器端跳转,跳转后地址栏的信息不会变化,执行到这段代码就会立即跳转,所以要注意当有操作数据库的时候要等数据库操作操作完在执行跳转。;第二种response.sendRedirect();属于客户端跳转,地址栏信息会变化,当整个代码段都执行完后才跳转。

但是从实际开发来看服务器端跳转要比客户端跳转更常用。


















0 0