java web application对象_JAVA WEB:application与session对象使用范例与差异深度分析

1.本文分析一下request对象中getParameter方法及getAttribute的差异及使用场景。

这个关系到servlet的生命周期

很简单的一个例子,上代码

页面1 :request1.jsp

1

2

3 Stringpath=request.getContextPath();4 StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";5 %>

6

7

8

9

1

10

11

12

13

14 username:

15

16

17

18

19

这个JSP 从text框获取一个文本值(用户名)

然后在request2.jsp中调用getParameter方法获取改对象

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

2

8

9

10

11

12 Stringusername=request.getParameter("username");13

14 %>

15

16 username:

17

18

19

20

21

22

23

显示成功。

我们在request2.jsp中将username再set到request中传递给第三个页面request3.jsp

1

2 pageEncoding="ISO-8859-1"%>

3

4

5

6

7

3

8

9

10

11

12 username:

13

14

然后在request3.JSP中用getAtterbute方法获取该对象

但是二者有什么区别呢,我们将request2.jsp修改一下即可看出差别

修改后的request2.JSP

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

2

8

9

10

11

12 Stringusername=request.getParameter("username");13

14 %>

15

16 username:

17

18

19

20

21 request3.jsp

22

23

我们将request2.jsp中的页面跳转转为超链接

username:null

页面只会这么显示。

因为改为超链接后,在游览器点击该链接,游览器会发送第二个请求,那么request的生命将终止,而发起的第二个request的session会话中是null的不存在一个叫username-String的KEY-VALUE对的。

总结:

1.request的setAtterbute与getAtterbute方法一般都是成对出现的,首先通过setAtterbute方法设置属性与属性值,

然后getAtterbute根据属性获取到该值(一般都需要进行向下的类型转换,转换为确切的类型对象进行使用)。setAtterbute与getAtterbute方法都是在服务器内部执行的,

客户端不可见。

2.request的getParameter方法的作用是获取到客户端通过表单或者URL请求参数发送过来的参数值,是客户端与服务器

之间的交互,服务器端想要获取到客户端发送过来的数据,就需要使用getParameter方法来获取。

没有雨getParameter方法对应的setParameter方法

3.*setAtterbute与getAtterbute是服务器内部对话的方法,而getParameter是游览器和服务器进行外部对话的方法

二。session与request的区别

request对象内的数据的存活范围是在request对象的范围内,当客户端向服务器发送一个请求,服务器想客户端返回一个响应后,该

请求对象就被销毁了,之后再向客户端发送新的请求时,服务器会创建新的request的对象,改对象之前的request和其没有任何关系,因此也无法获得之前的request对象中的任何对象。

4.session对象的内数据的存活范围也就是session对象的存活范围(?通俗的说:只要游览器不关闭,session对象就会一直存在?),

因此子啊同一个游览器窗口中,无论想服务器发送多少个请求,session对象只有一个

5.application(应用对象):存活范围最大的对象,只要服务器没关,application对象中的数据就会一直存在。在整个服务器

运行当中,只有一个application对象

6.request、session、以及application这三个对象的范围是逐个增加的

request只在一个请求范围内;session是在游览器运行窗口的范围捏;application则是在整个服务器运行的过成当中;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值