第一次接触这个,有点不懂,属性范围是什么东西?
属性是对象,因为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”);

437

被折叠的 条评论
为什么被折叠?



