JSP属性范围

第一次接触这个,有点不懂,属性范围是什么东西?
属性是对象,因为jsp里面也是java语言吗,java里面一切都是对象!
属性范围就是这个对象可以使用的范围
有4种 page request session application
如果我们把jsp页面看做一个类的话,类比一下就比较清晰了
page就是只能在这个jsp页面里面使用,一旦我跳转到另外一个jsp页面,不管跳转的方式是什么,page属性范围就无效了,相当于在private属性,在这个类里面可以使用,在另外一个类里面不可以使用

request就是服务器跳转之后还可以使用,服务器跳转就是jsp:forward啦
特征就是url不会改变
session就是服务器跳转,客户端跳转之后都可以使用
这两种相当于public属性

application属性比较特殊,在服务器端保存,所有用户都可以使用,这个如果要类比的话,相当于java里面的环境变量了,所有程序只要配置了jdk环境,然后import xxx 就可以使用了

下面是例子

///设置page属性
pageContext.setAttribute("name","huang");
pageContxt.getAttribute("name");

//设置页面的request属性
request.setAttribute("name","huang");
request.getAttribute("name");

//设置页面的session属性
session.setAttribute("name","huang");
session.getAttribute("name");

//设置application属性
application.setAttribute("name","huang");
application.getAttribute("name");

jsp的内置对象,就是jsp页面已经声明好了的对象,我们直接使用即可
request,response,out,config,session

<form action="check.jsp" method="post">
    <input type="text" name="name">
    <input type="submit" value="提交">
</form>

在另一个页面接受参数,注意,表单提交的跳转url是发生改变的,也就是
是属于客户端跳转
客户端跳转可以用request接受参数
服务器端跳转也是用request接受参数

String name=request.getParameter("name");

request对象是属于request属性

关于中文乱码问题,在上面那程序里面,index.jsp提交一个参数给check.jsp,尽管jsp页面可以显示中文,因为pageEncoding设置成GB18030了,但是问题是,如果表单提交的是中文,那么显示出来的是乱码

这里写图片描述

解决办法
request.setCharacterEncoding(“GBK”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值