JSP内置对象

为了方便WEB程序的开发,在JSP页面中内置了一些默认的对象,这些对象不需要预先声明就可以在脚本代码和表达式中使用。

内置对象一共有九个:

request 取得客户端与系统的信息

response 响应客户端信息

out 控制数据输出的操作

session 记录与处理上线者的个别数据

application 记录与处理上线者共享的数据

pageContext 存取与处理系统运行时的各项信息

config 取得JSP编译后的Servlet信息

page 代表目前这个JSP网页对象

exception 异常处理机制

关联:

request和response

request让服务器取得用户在网页表单中所输入的内容,response提供服务器端程序响应客户端信息所需要的功能。

application和session

基本上用于记录和处理JSP网页之间的共享数据

由于Internet本上是一种无联机状态的程序,当页面文件从网站服务器发送到客户端的浏览器之后,客户端和服务器端之间就没有任何联机状态存在,这个先天的缺陷,让网页无法存储应用程序运行期间所需的共享数据,于是出现了application和session。

out

out用于呈现经过程序计算过的网页,服务器利用out将所需要输出的内容,在传送至网页的时候动态写入客户端

config pageContext page

服务器端可以应用这三个对象,存取网页运行期间的各种环境信息,同时将网页当做对象来操作。

exception

提供了强大的异常处理机制。

request

主要用于接收客户端通过HTTP协议连接传输到服务器端的数据。在客户端的请求中如果有参数,则该对象就有一个参数列表,它通常是HttpServletRequest的子类,在客户端发出每个请求时,服务器都会创建一个request对象,并把请求数据封装到request中,然后再调用Servlet.servlet()方法时传递给servlet()方法,这说明service()方法中可以通过request对象来获取请求参数。

request对象常用的方法有很多,可以获取各种各样的服务器、客户端的信息。

request应用实例,获取请求参数

String getParameter(String name) 通过指定名称获取参数值

用表单和超链接。<jsp:param>传递参数的时候,使用getParameter(String name)接收传递的参数

返回给定参数的值,当传递给此方法的参数名没有实际参数与之对应时,返回null

使用getParameter(String name)取得的值都是字符串类型,需要转换为所需要的类型。

double r;

r = Double.parseDouble(str)

Enumeration getParameterNames();获取所有参数的名字

String[] getParameterValues(String name)当多个参数名字相同的时候,可以使用方法来获取,主要用于获取复选框的值或是下拉列表带multipe属性的值

域对象功能

如果一个请求中经历了多个Servlet,那么多个Servlet就可以使用request来共享数据

方法和ServletContext的相同

请求转发

RequestDispatcher rd = request.getRuquestDispatcher("/BServlet");

rd.forward(request,response);

请求转发是一个请求,重定向是两个

转发后地址栏不会有变化,而重定向会有变化

请求转发的目标只能是本应用中的资源,重定向的目标可以是其他应用

请求转发对AServlet和BServlet的请求方法是相同的,要么都是GET 要么都是POST

重定向的第二个请求一定是GET


转发:客户端发送给服务器,服务器调用AServlet,A使用转发,到BServlet,B返回给这个服务器,服务器返回给客户端。

由BServlet完成响应体,AServlet中还可以完成响应头,即:留头不留体。


包含:客户端发送给服务器,服务器调用AServlet,AServlet中包含了BServlet。

由AServlet和BServlet共同完成响应头和响应体


response

用于将服务器端数据发送到客户端以响应客户端的请求。response对象实现了HttpServletResponse,可对客户的请求作出动态的响应,向客户端发送数据,例如:Cookie、HTTP文件头信息等。

response的对象常用方法一般都是设置用的,很多比如:setContentType() 等等

response对象应用实例

response.setContentType("text/html;charset=utf-8");

这样,客户端浏览器会使用content-type头来解读响应数据,还会调用response.setCharacterEncoding("utf-8")保证输出给客户端的字符都是使用UTF-8编码的

重定向:服务武器通知浏览器去访问另一个地址,即在发出另一个请求

1客户端发出请求AServlet,服务器收到后传到AServlet中,AServlet重定向将结果返回给服务器,2服务器响应吗302,以及设置location头为BServlet发送给客户端 3 客户端请求BServlet,然后正常。

response.sendRedriect("/xiangmu/BServlet")


out

主要是把信息发送给客户端的浏览器,个人感觉有点像在控制台输出的效果。


session

session存在于服务器端,当客户端用户想服务器提出请求打开网页时,弱该网页中包含了为用户建立session的程序代码,则session则会产生。可用来存放属于该用户的数据,且每一个网页都可以使用这个session的内容。

session对象的ID

当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID 号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户端之间就简历了一一对应的关系。每生成一个session,服务器都会给它一个编号,并且该编号不会重复,这样服务器才能根据编号来识别session,并且正确的处理某一特定的session及其提供的服务。

session的有效期限

1 用户关闭当前正在使用的浏览器程序

2 关闭网页服务器

3 用户未向服务器提出请求超过预设的时间,Tomcat的预设时间是30分钟

4 运行程序结束session

访问session中的数据

session对象是由HttpSession接口衍生而来的。

session.setAttribute("变量名字",变量内容);  设置session的值

session.getAttribute("变量名称") 返回session的值

session.getAttributeNames() 返回所有session中的变量名称

session.removeAttribute("变量名称") 清除session中的变量

session.invalidate() 结束session


application(作用域和session不同)

可视为一个所有联机用户共享的数据存取区,无论网站中任何一份页面,用户存取的内容均相同,可以将其视为传统应用程序中的全局共享数据。

1 application对象中保存了一个应用系统中公有的数据,一旦创建了application对象,除非服务器关闭,否则application对象将一直存在

2 所有的客户访问的application对象都是同一个

3 application对象仅有一个,由服务器创建,由服务器清除,不能被用户创建和清除

各种方法

application.setAttribute(“变量名称”,变量内容)

application.getAttribute("变量名称")

application.removeAttribute(“变量名称”)

application.getAttributeNames();


pageContext

可以得到当前页面中所有其他的JSP隐含对象

例如getRequest() getResponse() getOut() 和 getSession()

并提供了处理JSP各个对象与属性的方法


config对象

标识Servlet的配置 主要用来取得服务器的配置信息,在JSP页面通过JSP Container 进行初始化时被传递。 使用config对象,在修改需要在Web服务器中处理的变量的时候,不用逐一修改JSP文件,只需要改相应文件的内容。

例如,计数器页面关闭的时候回重置为0 ,可以通过设置服务器配置信息来保存


page对象

类似于java中的this,指向JSP程序本身的对象


exception

顾名思义,不过必须在isErrorPage="true"的时候才能访问exception对象。










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值