Jsp内置对象
Jsp内置对象
1.request对象
1).获取QueryString参数:
2).请求转发数据传递
这两个方法的信息保存在request范围内,区别于Session对象的这两个方法。
3).获取客户端信息
2.Cookie对象
1).创建并保存Cookie
实例如下:
1
2
3
4
5
6
request.setCharacterEncoding("utf-8");//设置请求的编码
String user = URLEncoder.encode(request.getParameter("user"),"utf-8");//从QueryString中获取用户名
String age = request.getParameter("age");//从QueryString中获取年龄
Cookie cookie = new Cookie("NameAge", name + "#" + age);//创建Cookie
cookie.setMaxAge(60 * 60 * 24 * 30);//设置Cookie有效期为30天
response.addCookie(cookie);//保存Cookie
2).读取Cookie
实例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
Cookie[] cookies = request.getCookies();//获取用户浏览器中保存的Cookie数组
String user = "";
String age = "";
if (cookies != null) {
//foreach遍历数组
for (Cookie cookie : cookies) {
if (cookie.getName().equals("NameAge")) {
//utf-8解码获取user
user = URLDecoder.decode(cookie.getValue().split("#")[0],"utf-8");
age = cookie.getValue().split("#")[1];
}
}
}
Tip:对于Cookie中文的传值,我们需要对中文进行编码和解码,才能将信息保存到Cookie对象中。若我们直接获取QueryString中的中文,并把它加入到Cookie当中,会发生错误。错误代码如下:
1
2
3
4
5
String user = request.getParameter("user");//从QueryString中获取中文的用户名
String age = request.getParameter("age");//从QueryString中获取年龄
Cookie cookie = new Cookie("NameAge", name + "#" + age);//创建Cookie
cookie.setMaxAge(60 * 60 * 24 * 30);//设置Cookie有效期为30天
response.addCookie(cookie);//保存Cookie,运行的时候这里会发生错误
3).Cookie类的常用方法
4).删除Cookie
在JSP中,使用setMaxAge(int expiry)方法来设置Cookie的存在时间,参数expiry应是一个整数。正值表示cookie将在这么多秒以后失效;负值表示当浏览器关闭时,Cookie将会被删除;零值则是要删除该Cookie。如:
1
2
3
4
Cookie deleteNewCookie=new Cookie("newcookie",null);
deleteNewCookie.setMaxAge(0); //删除该Cookie
deleteNewCookie.setPath("/");
response.addCookie(deleteNewCookie);
3.Response对象
1).重定向网页
2).禁用缓存
3).自动刷新
4).定时跳转
4.Session对象
1).基本操作
2).Session的一个简单应用
在index.jsp中输入你的名字,传递到session.jsp中,并保存到session对象中。最后在result.jsp页面中读取session对象你的名字的内容。
index.jsp文件:
1
2
3
4
5
6
7
8
<form id="form1" name="form1" action="session.jsp" method="post">
<p>
你的名字是:
</p>
<input type="text" name="yourName" value="">
<br/>
<input type="submit" value="Ok">
</form>
session.jsp文件:
1
2
3
4
5
6
7
8
<body>
<%
request.setCharacterEncoding("utf-8");//设置请求的编码
String name= request.getParameter("yourName");
session.setAttribute("yourName",name);
%>
<a href="result.jsp">Result</a>
</body>
result.jsp文件:
1
2
3
<body>
<%=session.getAttribute("yourName")%>
</body>
5.Application对象
从web.xml中获取全部的初始化对象的一个实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
<body>
<%
Enumeration enumeration = application.getInitParameterNames();//获取全部的初始化参数
while (enumeration.hasMoreElements()) {
String name = enumeration.nextElement().toString();
String value = application.getInitParameter(name);
%>
参数名:<%=name%>
参数值:<%=value%>
<%
}
%>
</body>