"JSP"的九个隐式对象
隐式对象 | 描述 |
---|---|
request | 请求 |
response | 响应 |
config | 获取初始化参数 |
application | 全局变量 |
exception | 错误后抛出的异常信息 |
session | 会话 |
page | 代表转译后的Servlet , 指当前的JSP页面本身 |
out | 页面输出 |
pageContext | 页面上下文对象 |
注: 这里只是简单介绍一下,如果想要具体了解的,可以去搜别人家的,而且只会对request、response、Session 、out 、application 进行说明,其他几个就不误人子弟了。
那么首先我们先了解一下什么是JSP隐式对象呢?
JSP隐式对象 : 是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。
1. request对象
用户每访问一个页面,就会产生一个HTTP请求。而我们可以通过request来获取客户端和服务器端的信息。
常用的方法有:
方法 | 说明 |
---|---|
getParameter() | 获取指定参数值 |
getMethod() | 获取提交信息的方式,即get或post |
getRemoteAddr() | 获取客户IP地址 |
setCharacterEncoding(arg0) | 设置请求编码 ,处理中文乱码问题 |
getLocalAddr() | 获取本机主机的IP |
// 设置编码
request.setCharacterEncoding("UTF-8");
// 获取客户端(请求中的IP地址)
String ip = request.getRemoteAddr();
// 获取客户提交信息方式
String method request.getMethod();
// 接收数据
String userName = request.getParameter("userName");
2.response对象
当用户访问一个页面时,就会产生一个HTTP请求,服务器做出响应时使用的是response。
常用的方法有:
方法 | 说明 |
---|---|
sendRedirect(String arg0) | 实现页面重定向 |
setContentType(String arg0) | 设定页面的MIME类型和字符集 |
setCharacterEncoding(arg0) | 设定页面响应的编码类型 |
// 1.编码问题
response.setCharacterEncoding("UTF-8");
// 2.响应格式
response.setContentType("text/html");
// 重定向
response.sendRedirect("index.jsp");
3.session对象
session对象,即会话,可以用来判断是否为同一用户,还可以用来记录客户的连接信息,即用来跟踪在各个客户端请求间的会话。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,
服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
常用的方法有:
方法 | 说明 |
---|---|
serAttribute(String arg0 , String arg1) | 将参数名和参数值存入session对象中 |
getAttribute(String arg0) | 获取参数值 |
removeAttribute(String arg0) | 移除指定session中的参数 |
Boolean isNew() | 判断是否是一个新客户 |
invalidate() | 使session失效,一般在退出时使用 |
HttpSession session = request.getSession();
session.setAttribute("users", users);
Users users = (Users)session.getAttribute("users");
4.out对象
out对象,是一个输出流对象。它包含了很多io流中的方法和特性,最常用的方法就是输出内容到HTML中
常用的方法有:
方法 | 说明 |
---|---|
append(char c) | 将字符添加到输出流中 |
clear() | 清楚页面缓存中的内容 |
close() | 关闭网页流的输出 |
flush() | 刷新 |
println() | 将内容直接打印在HTML标记中 |
write() | 与println()类似,但write只能输出与字符相关的数据 |
注: 在调用clear之前,不要调用flush方法,否则会抛出IO异常。
5.application对象
application对象 的生命周期从对象创建到应用服务器关闭,即可以说是Web应用的全局变量,当服务器运行时有效,关闭时结束。
常用的方法有:
方法 | 说明 |
---|---|
getAttribute(String arg0) | 获取存放在application中的对象 |
setAttribute(String arg0 , Object obj) | 将对象放进application对象中 |
通过设计一个网站计数器,来进行上述两个方法的实现
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
Integer count = (Integer)application.getAttribute("count");
if(count == null){
count = 1;
} else {
count++;
}
application.setAttribute("count", count);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> 网页计数器 </title>
</head>
<body>
欢迎访问本网站,您是第<%=count %>位访问客户!!
</body>
</html>