02.JSP内置对象

一、内置对象:不再由用户进行实例化而可以直接使用的对象,一共九种,一定要清楚的记住每种内置对象的类型,以方便查询文档。

二、四种属性保存范围

1,  属性保存范围:指一个设置的对象,可以经过多少个其他的页面后仍然可以访问的保存范围。

2,  四种属性范围:

A,page范围,由pageContext对象完成,只能在一个页面中保存属,跳转之后无效

B,request范围,只在一次请求中保存,服务器跳转之后依然有效(客户端跳转无效)

C,session范围,在一次会话范围中,无论何种跳转都可以使用,而且从跳转之后的页面新开一个页面也可以使用,但是新开的浏览器无法使用访问跳转后的页面无法使用。对于服务器而言,每一个连接到它的客户端都是一个session

D,application范围,在整个服务器保存,所有用户都可以使用。属性设置后,无论如何跳转,无论是否是新开的浏览器,都可以访问。

特别注意:A,四种属性设置优先性,page>request>session>application,范围越窄,服务器压力越小

B,可以通过pageContext设置四种属性范围

3,  属性设置方法:每种属性都有以下三种方法

范例:page:只能在本页面使用设置的属性

request:可以在服务器跳转之后的页面访问设置的属性,而且具有传递性

             session:在一个页面设置的属性,可以被同一会话的其他跳转页面使用

           

           application:在一个页面中设置的属性,可以在服务器未关闭期间,被其他跳转页面,或者新打开的浏览器页面使用

 

4,通过pageContext设置四种属性范围:

pageContext.setAttribute(String name,Object value,int scope),其中scope取四种常量PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE,APPLICATION_SCOPE分别表示设置四种属性范围

对应的,取得不同属性也需要设置scope值:pageContext.setAtttribute(String name,int scope)

三、request对象

1,  作用:主要用来接收客户端(或其他页面)发送来的请求消息,如请求的参数,发送的头信息。

request是javax.servlet.http.HttpServletRequest接口的实例化对象,表示此对象主要应用在http协议上。HttpServletRequest接口的父接口ServletRequset却只有HttpServletRequest一个子接口,不将其合并成一个接口,是为从长远考虑,因为现在主要使用的是http协议,说不定以后会出现其他协议,这样新的协议可以直接继承ServletRequest接口

2,  参数传递

a, request的所有方法都是围绕如何接收参数及头信息,接受的参数包括表单提交过来的文本,密码,单选框,复选框,其中复选框需要以数组的形式接收,public String[] request.getParameters(“***”)

b,地址重写的方式传递参数:在一个jsp页面的url路径后面添加 ?param1=value1&param2=value2…..即可向该页面传递参数

c, 表单提交时,method的post与get方式的区别:

post方式:提交后的地址栏为目标地址,且只能用于表单提交

get方式:提交后的地址栏变成目标页面地址,且会以地址重写的方式显示,则传递时肯定会受到地址栏长度的限制

且get方式要求表单数据必须是ASCIll字符

点击刷新,post会重新提交数据,get无影响;且post方式比get方式安全性高。

总结:get是向服务器索取数据的一种请求,查询键值对是通过请求的URL发送的;post是向服务器提交数据的一种请求,查询键值对是通过请求的HTTP消息主体中发送的

d,获取所有参数名称:Enumeration  getParameterNames(),返回Enumeration对象,可用nextElement()逐个获取参数

3,  显示头信息

头信息:在请求和回应中包含的其他信息,如客户端IP,Cookie,语言等。请求头信息可以用request的Enumeration getHeaderNames()和request.getHeader方法取得头信息名及内容

4,  其他操作

通过request对象可以取得客户端的IP地址,请求方式,访问的路径,上下文路径名称等

直接打开jsp属于get请求方式

上下文路径名称很重要,可以取得项目根路径,通过它方便的访问同一项目中其他文件夹中的内容

5,  总结

getAttirbute与getParameter的区别:

四、response对象

1,  功能:主要用于服务器回应客户端请求。是HttpServletResponse接口的实例,同request类似,HttpServletResponse的父接口ServletResponse也只有一个子接口

2,  方法:

设置头信息

定时刷新:

定时跳转:

这种跳转只有在服务器处理后才有效果,当页面跳转之后,如果直接后退,没经过服务器处理,则不会跳转

html本身有设置头信息的功能:

通过设置头信息的定时跳转属于客户端跳转,地址栏会改变

页面跳转

也属于客户端跳转

小结:客户端跳转也服务器端跳转区别

服务器端跳转:地址栏不变,可以传递request属性,属于无条件跳转,跳转后面的语句不再执行,所以如果有用JDBC连接数据库的话,必须在服务器跳转之前关闭。<jsp:forward page=””/>

客户端跳转:地址栏改变,不能传递request属性,跳转后面的语句将继续执行。

服务器跳转是客户端发送一个jsp或Servlet资源请求,这个资源又将请求转到另一个服务器资源,然后才响应客户端,即一次请求,一次响应

客户端跳转是客户端发送一个资源请求,服务器响应,客户端再根据这个响应中URL地址,再发送一次请求,然后服务器再次响应即两次请求,两次响应

服务器跳转:

  1. <jsp:forward page=””/>
  2. pageContext.forward()
  3. request.getRequestDispatcher(“1.jsp”).forward(request,response)

客户端跳转:

  1. 链接跳转:<a href=””></a>
  2. 表单提交
  3. 重定向Response.sendRedirect(“”)
  4. 设置头信息定时跳转,包括response.setHeader()和html自带设置头信息功能

 Cookie:浏览器提供的一种技术,可以让一些服务器端程序或者在客户端进行处理的数据,放在浏览器本地计算机中,不需通过网络传输,可以提高网页处理效率,减少服务器负载

设置并保存Cookie: 一个Cookie是由name跟value组成,setMaxAge()用于设置Cookie保存时间,不设置的话,一 个Cookie默认是暂时保存在浏览器上,关闭浏览器之后,Cookie消失。运行此jsp,则将c1,c2保存在客户端。

在另外一个页面取得Cookie:

注意:通过request对象取得Cookie;Cookie本身是存在安全隐患的

五、session对象

1,session  id:对于每一个用户,其实就表示一个session,服务器靠session id 来区分这些用户。即每一个通过浏览器连接到服务器的用户都会由服务器分配一个不会重复的编号

通过pageContext操纵对内置对象方法

jsp页面运行时,会自动的设置一个Cookie,那个Cookie也即用户的session id

服务器关闭后,会重新分配session id

2,登陆验证及注销:验证是否登陆或是否处于登陆状态

原理:用户登录成功,则设置一个标志session属性,并跳转至welcome.jsp,在整个会话期间,这个属性一直有效,用户可以在不关闭浏览器且不注销的前提下,重复多次访问welcome.jsp而不需再次登陆验证。如果用户未登录,或关闭浏览器,或注销登陆,则标志session属性无效或会失效,此时如果直接访问welcome.jsp则会提示未登录。原理可参照淘宝网登陆注销及访问规则。

Login.jsp

注意,表单的提交页面为页面本身,如果登陆成功,则将loginState设置为标志属性有效,表示可以访问welcome页。

welcome.jsp:

如果登陆成功,则在整个会话期间(不关闭浏览器,不注销)则session属性loginState一直有效,可以重复多次直接访问welcome页而不用再次登陆验证

 

logout.jsp:

注销session属性,并跳转至登陆页,此时session属性失效,无法直接访问welcome页

3,判断是否是新用户

一次会话中,如果第一次打开此jsp页面,则显示欢迎新用户光临,否则显示你已经是老用户了

六、application对象

1,  application是javax.servlet.ServletContext接口的实例化对象,代表整个Servlet上下文

2,  方法

当然,application也有自己setAttribute(),getAttribute(),removeAttribute()等属性方法

取得虚拟路径名称

在jsp中,有一个方法的功能可以与之完全对应:getServletContext()方法

String url1= getServletContext().getRealPath(“/”)或者String url2=this. getServletContext().getRealPath(“/”)都能取得虚拟目录的绝对路径。现在一般重点使用getServletContext()方法

七、web安全性与config对象

1,  将jsp资源保存在WEB-INF文件夹中是最安全的,但是必须通过映射路径才可以访问

2,  通过config对象可以取得初始化的配置参数

八、pageContext对象

1,pageContext对象是javax.servlet.jsp.PageContext类的实例,主要表示一个jsp页面的上下文,几乎可以操作所有的的内置对象

2,主要方法

跳转、包含、取得配置对象,和四种属性范围对象

跳转的同时,传递参数:

操作内置对象对象:

时间: 2024-10-09 11:03:41

02.JSP内置对象的相关文章

jsp 内置对象(五)

1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理.首先,将获取的 字符串用ISO-8859-1进行编码,并将编码存发岛一个字节数组中,然后再将这个数组转化为字符串对象 即可.如下: String textContent=request.getParameter("boy") byte b[]=textContent.get

JavaWeb学习(三)----JSP内置对象详解

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4065790.html 联系方式:[email protected] [系列]JSP学习系列文章:(持续更新) JavaWeb学习(一)----JSP简介及入门(含Tomcat的使用) JavaWeb学习(二)----JSP脚本元素.指令元素.动作元素 JavaWeb学习(三)----JSP内置对象

【转】JSP内置对象详细介绍(下)

第四个问题:Servlet的生命周期是什么呢? Servlet的生命周期,简单的概括分为四步:servlet类加载->实例化->服务->销毁.Servlet实例化的步骤: 1.Servlet容器启动时:读取Web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法. 2.在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会 判断内存中是否

Jsp 内置对象

JSP内置对象是 Web 容器创建的一组对象 JSP内置对象的名称是 JSP 的保留字 JSP内置对象是可以直接在 JSP 页面使用的对象,无需使用 “new” 获取实例 -request 对象:用于处理客户端请求,主要方法如下: String getParameter(String name) 根据页面表单组件名称获取页面提交数据 String[ ] getParameterValues(String name) 获取一个页面表单组件对应多个值时的用户的请求数据 void setCharact

JSP内置对象详解

jsp中内置对象:request.response.session.applecation.out.pagecontesx.config.page.exception.cookie 1.request:是javax.servlet.httpservletRequest类型的对象,该对象是用户客户端的请求信息,主要用户接受客户端通过http协议传送到服务器的数据! (包括头部信息.系统信息.请求方式以及请求信息参数),jsp内置对象Web容器所创建的一组对象! 生命周期:jsp发出请求一个requ

尴尬!Jsp内置对象

今天挺尴尬的,上网络安全课做错了ppt ,尴尬到头皮发麻. JSP内置对象 JSP内置对象是Web容器创建的一组对象,不使用new关就可以使用的内置对象. <%int[ ]value= {60,70,80 };for (int i: value) {out.println(i);%> WEB程序的请求响应模式,用户发送请求,服务器给用户响应

JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式

最近在学习JSP相关基础知识,我们都知道JSP当中存在一组不使用new关键字就可以在脚本和表达式中使用的对象,在Web开发中经常使用.为了能更好的理解这些对象,在此对JSP内置对象作一些归纳. 目录: JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式 JSP内置对象——out(待更新) JSP内置对象——request/response(待更新) JSP内置对象——session(待更新) JSP内置对象——application(待更新) JSP内置对象——其他

JSP内置对象—session

什么是session? session对象是用来在每一个用户之间分别保存每一个用户信息的对象,以便跟踪用户的操作状态.session的信息保存在服务器端,session的id保存在客户端的cookie中. 例如我们乘坐火车就可以看做是一个session.当我们乘坐火车的时候,我们需要持有一张车票.车票就相当于是一个cookie.而车票上的座位号就相当于是sessionId.当我们需要访问列车的时候,检票员会事先检查我们是否持有cookie,如果有就根据cookie里的内容(sessionId)

JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次都要先创建这些对象,然后再去使用它们,这样就显得十分繁琐了,为了方便使用者,Sun公司在开发JSP的时候,把一些对象设置为内置对象,开发者在JSP页面编程的时候不必声明这些对象就能直接使用,这就是JSP的内置对象. 那么JSP对象有哪些呢? JSP内置对象          对应的类型   备注 R