java九大内置对象及作用,JSP的九大内置对象以及四大作用域

什么是内置对象?

内置对象:在jsp页面中不需要通过new关键字创建的对象,直接可以使用的对象。

1.request:请求对象,包含客户端的请求信息

需要在jsp中创建一个表单,用于demo

用户名:

篮球

足球

羽毛球

游泳

request对象常用的方法

获取当前资源的根路径

request.getContextPath()

获取客户端的请求地址

request.getRemoteAddr()

获取客户端请求资源路径

request.getRequestURI()

获得表单提交过来的数据

request.getParameter("参数名")

获取表单提交过来的数据集合

String[] s = request.getParameterValues("参数名");

解决request获得表单提交数据出现中文乱码的问题 我们需要打开tomcat中的conf目录,编辑server.xml,在Connector标签中加上URIEncoding="UTF-8"即可。

###2.response:封装jsp的响应

response的常用方法

//用于向页面输出信息

PrintWriter pw = response.getWriter();

pw.println("hello,response");

if(s.length>2)

//页面重定向

response.sendRedirect("sucess.jsp");

%>

3.session:用于长期存储用户信息保持会话的对象

向session中添加信息

//向session中添加信息

session.setAttribute("uname",name);

%>

在另一个jsp页面中获取session值

请求成功,欢迎你:

out.println(name);

%>

page5.jsp

4.application:用于用户之间共享的数据对象,它开始于服务器的启动,直到服务器的关闭

向application中添加信息

//向application中添加信息

application.setAttribute("参数名",值);

在另一个jsp页面中获取值

application.getAttribute("参数名");

除此之外,我们可以继续在其他的页面获取到这个值,即使我们关闭当前浏览器,然后用另外一个浏览器打开,还能获取到application的值。对比request,session可以看到,当我们关闭当前浏览器,打开一个新的连接的时候,利用session和request获取到的值都已经丢失,而application的值还存在,所以说只要服务器不断开连接这个值就一直存在。

application的其他方法

//获得服务器引擎信息

String info = application.getServerInfo();

5.out:从response中获取的的字符打印流(PrintWriter)对象,用于向页面输出信息

out实例:实现9*9乘法表

//完成一个九九乘法表,页面输出,java实现

String[] colors = {"red","green","blue"};

for(int i=1;i<10;i++){

for(int j=1;j<=i;j++){

out.print(""+j+"*"+i+"="+(i*j)+" "+"");

}

out.println("
");

}

%>

6.pageContext:提供对jsp页面所有对象的信息的访问

7.page:类似于我们java中对象的this的引用

8.exception:异常对象,当页面中发生异常包装了所有异常信息的对象

9.config:获取当前web.xml配置信息的对象

#jsp内置对象的四大作用域

pageContext:当前页,存储在pageContext中的数据默认只能在当前页面访问和使用;

requeset:只能在一次请求中保存(如果需要持续保存,则需要请求转发,将request继续传递);

session:能够在整次会话中都能保存,只要在session的有效时间之内,并且浏览器未关闭的情况下;

application:能够在应用程序级别保存数据,即使客户端浏览器被关闭,都能长期有效,并且所有用户之间都能够共享数据。除非服务器停止。

请求转发和重定向

0f23a348948ebd2234063a2c020d02e9.png

请求转发:发生在服务器端的跳转,客户端只发送一次请求,其他请求过程,由服务器完成,在客户端地址栏中显示的客户端发送的请求路径,并且请求转发可以将请求(request)对象继续传递。

request.serAttribute("参数名","值");

request.getRequestDispatcher("请求地址").forward(request,response);

发生在客户端的请求,客户端发送多次请求,寻找对应的资源,在客户端地址栏显示的是客户最后一次请求的地址,重定向无法将请求(request)继续传递。

resposne.sendRedirect("请求的地址")

特要说明的是:如果我们将参数放在request内置对象中进行传递,那么我们只能采用请求转发的方式,因为请求转发只发生一次请求,而重定向会发送多次请求,而request对象的值,只能在一次请求中进行传递,所以,只能是请求转发的方式。而且,请求转发之后网页栏中显示的是发送请求的页面的地址,重定向显示的是最后一次请求的地址,而且request对象丢失。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值