JSP四种属性范围
来源:互联网 发布:网络卖警服 编辑:程序博客网 时间:2024/05/22 09:05
(1)直接在web contain中进行对象的实例化。
内置对象
类型
作用域
PageContext
javax.servlet.jsp.PageContext
page
request
javax.servlet.http.HttpServletRequest
request
response
javax.servlet.http.httpServletResponse
page
session
javax.servlet.http.HttpSession
session
application
javax.servlet.ServletContext
application
config
javax.servlet.ServletConfig
page
out
javax.servlet.JspWriter
page
page
javax.lang.Object
page
excepiton
javax.lang.Throwable
page
(2)jsp内置对象分类
与servlet有关的隐含对象:page,config
与input/output有关的隐含对象:out,request,response
与jsp执行时有关的context的隐含对象:session,application,pageContext
与error有关的隐含对象:exception
(3)属性的设置和取得
设置属性:public void setAttribute(String name,Object.value)
取得属性:public void getAttribute(String name)
(4)四种属性保存范围
在一个页面范围内:page
在一次服务器请求范围内:request
在一次会话范围内:session
在一个应用服务器范围内:application
(5)page范围
Page范围通过PageContext对象来设置,将属性保存在一次请求范围之内,必须使用服务器端跳转<jsp:forward/>
(6)session范围
只保留一个用户的信息
(7)application范围
所有的用户都可以取得此信息,此信息在整个服务器上被保留。Application属性范围值,只要设置一次,则所有的网页窗口都可以取得数据。
Application,session,request都需要跨多个页,属性保存时内存开销的
如果能使用request就不适用session,能使用session的就不要使用application。
(8)pageContext默认情况下表示一个页面的保存范围
public void setAttribute(String name,Object value,int scope)
public static final int APPLICATION_SCOPE:application范围
public static final int SESSION_SCOPE:session范围
public static final int REQUEST_SCOPE:request范围
public static final int PAGE_SCOPE:page范围
四种属性范围都是依靠pageContext展开的,但是在开发中,往往使用session,request范围
六,response对象
(1)主要功能
Response对象是服务器端回应客户端的请求。
所属的接口:javax.servlet.http.HttpServletResponse
HttpServletResponse是ServletResponse接口的子接口
(2)设置头信息
response.setHeader("refresh","刷新的时间");
response.setHeader("refresh","刷新的时间;URL=跳转的页面");
(3)重定向
response.sendRedirect("跳转的页面");地址栏改变所以是客户端跳转,所有代码执行完再跳转
response.sendRedirect("跳转的页面?属性=值");
(4)设置cookie
Cookie是服务器端保存在客户端的一组资源。
Cookie对象:Cookie 对象名=new Cookie("cookie名称","cookie的值")
通过response对象将cookie设置到客户端:response.addCookie("cookie对象")
通过resquest对象在服务器端取得cookie:request.getCookies()得到Cookie的对象数组
Cookie c[ ]=request.getCookies();实际上客户端的Cookie是通过http头信息 发送到服务器端上的
Cookie对象的方法:cookie对象名。getName()得到cookie的名字;cookie对象名。getValue()得到cookie的值;Jsessionid表示在服务器上的唯一标示;cookie对象名。setMaxAge()设置最大保存的时间。
(5)两个跳转的区别
1,<jsp:forward page=""/>
服务器端跳转,地址栏不改变;执行到跳转语句后无条件立刻跳转,之后的代码不再被执行;如果使用forward跳转,则一定要在跳转之前释放掉全部的资源;使用forward时,request设置的属性依然能保留在下一个页面(setAttribute);通过<jsp:param name="属性名" value="值"/>,传递参数。
2,response.sendRedirect("地址")
客户端跳转,地址栏改变;所有代码执行完毕后再跳转;不能保存request属性,因为地址改变了。使用客户端跳转,可以使用重写URL将内容传递。
七,session对象
(1)session功能
Session对象主要用于保存用户的各种信息,知道它的生命周期超过或被人为释放掉为止
可以通过session对象来判断此用户是否是合法用户。
Session对象是javax。Servlet。http。HttpSession接口的实例化对象,session属于http协议范畴之内的对象,所以只有唯一http包下有此接口,没有任何继承关系,用户只要一连接到服务器,则立刻分配一个session给用户。
(2)主要方法
session。getID():服务器上通过session来分别不同的用户,sessionID:任何链接到服务器上的用户,服务器都会为之分配唯一的一个不会重复的sessionID。由服务器统一管理,人为不能控制。
session。getId()。length():id的长度为32位
session。isNew():判断是否是新的用户
session。invalidate():使session失效
session。getCreationTime():得到session的创建时间,返回long类型,通过Date得到时间
session。getLastAccessedTime():得到最后一次操作时间,返回long类型
实例:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*"%>
<%
long l = session.getCreationTime() ;
long l2 = session.getLastAccessedTime() ;
%>
<h1>session CREATE : <%=new Date(l)%></h1>
<h1>session last access: <%=new Date(l2)%></h1>
<h1><%=(l2-l)/1000%></h1>
假如需要求出用户在线时间,使用以下公式:最后操作时间—创建的时间
(3)session属性的设置
session.setAttribute(String name,Object value)
session.getAttribute(String name)
session.removeAttribute(String name)
(4)两种写法的区别
if(name.equals("mldn")&&pass.equals("password")):假如其中的name和pass没有被初始化,那么在执行此句子的时候会出现nullpointexception;但是如果使用该写法则不会出现错误,
if("mldn".equals(name)&&"password".equals(pass))。
(5)session用法
验证用户是否登陆。
(6)session与cookie
Session和cookie用于跨网页共享数据。
Session记录独有的个人信息,在不同页面中传递,使用setAttribute,getAttribute方法
Cookie保存于客户端,供浏览器与web服务器互通数据用的纯文字文件,当ie执行的时候会在计算机中产生一个cookie。
Session比cookie更安全,session比cookie更占用资源,session使用了cookie的机制,如果cookie被禁用,则session也无法使用
八,application与config对象
(1)application简介
Application对象主要的作用就是保存公共信息,属于javax。Servlet。ServletContext,此工作目录的路径不是固定的,有可能此工作目录在c盘上或是在d盘得到的工作目录的真实路径。Application是在整个服务器中保持的只有一个实例的对象。
(2)属性操作
setAttribute(),getAttribute(),removeAttribute()
(3)真实路径
application。getRealPath(String path),其中String path是"/"。
在实际使用中用getServletContext()方法代替application
getServletContext()。getRealPath("/")或者使用this。getServletContext。getRealPath("/")
(4)Jsp安全性Config对象
(a)在j2ee中安全性体现在工作目录的WEB-INF文件夹,页面保存在此文件夹下,外面无法发现此文件夹内的文件,如果要使此文件夹内的文件能被用户访问,则修改WEB-INF文件夹
下存在的web.xml文件,web.xml文件属于整个web站点的配置文件。
<……mapping start>
<servlet>
<servlet-name></servlet-name>
<jsp-file></jsp-file>
<init-param>
<param-name></param-name>
<param-value></param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern>/浏览器中输入的地址</url-pattern>
</servlet-mapping>
<……mapping end>
修改web.xml之后重启服务器。
(b)config对象
Config对象一般用来取得服务器的初始化配置参数,但若要使用此对象应在WEB-INF/web.xml之中配置。
Config对象在javax。Servlet。servletConfig中取得初始化参数的方法:
public string getInitParameter(String name)
通过此种功能,可以将数据库链接的一些信息写在配置文件之中—JDBC程序的时候
public Enumeration getInitParameterNames()
与request.getParameterNames()方法类似,是取得全部配置参数的。
- jsp四种属性范围
- JSP四种属性范围
- JSP四种属性范围
- JSP四种属性范围
- JSP四种属性保存范围
- jsp中的四种属性保存范围
- JSP四种属性范围学习心得
- jsp 中提供四种属性范围
- JSP中四种属性范围
- JSP的四种属性范围
- JSP中四种属性范围
- JSP中四种属性范围
- JSP中四种属性范围
- JSP中四种属性范围
- 四种属性范围
- 四种属性范围
- JSP中的四种属性范围及九个内置对象
- JSP 内置对象的四种属性范围
- Magento调用自己创建的属性
- jetty的SelectChannelConnector分析
- java nio实现非阻塞Socket通信实例
- 被7/11/13整除的数特征
- 文件上传下载删除工具类
- JSP四种属性范围
- HttpsURLConnection 安全传输(HTTPS--Secure Hypertext Transfer Protocol-安全超文本传输协议)
- html页面表格导出excel出现科学计数法问题的解决
- ASP.NET: GridView CRUD using Twitter Bootstrap Modal Popup
- Ubuntu下安装ActiveMQ
- java_静态类
- 别人遇到的问题
- 导航栏添加多个按键
- 黑马程序员_软件计数器