您的位置:首页 > Web前端 > JavaScript

jsp 九大内置对象详解以及示例

2017-11-07 15:47 429 查看

以下是 jsp 九大内置对象详解以及示例

jsp 九大内置对象类型以及作用域一览表:

request           请求对象            类型 javax.servlet.ServletRequest        作用域 Request
response          响应对象             类型 javax.servlet.SrvletResponse        作用域 Page
pageContext       页面上下文对象        类型 javax.servlet.jsp.PageContext       作用域 Page
session           会话对象             类型 javax.servlet.http.HttpSession      作用域 Session
application       应用程序对象          类型 javax.servlet.ServletContext        作用域 Application
out               输出对象             类型 javax.servlet.jsp.JspWriter         作用域 Page
config            配置对象             类型 javax.servlet.ServletConfig         作用域 Page
page              页面对象             类型 javax.lang.Object                   作用域 Page
exception         例外对象             类型 javax.lang.Throwable                作用域 page


out对象:

out对象javax.servlet.jsp.JspWriter的一个对象,它能把信息发送给客户端的浏览器。
out对象有两个常用方法:print();和println();

out对象也可以对缓冲区做相关操作(代码如下):


<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
out.print("helloworld");
// out.clearBuffer(); // 将缓冲区的数据清空
out.flush(); // 先显示数据在清空缓存
out.println("缓冲区空间:" + out.getBufferSize());
out.print("剩余空间:" + out.getRemaining());
out.print("AutoFlush状态:" + out.isAutoFlush());
out.close();

%>
</body>
</html>


request对象:

设置字符编码:request.setCharacterEncoding("utf-8");

取值:String uname = request.getParameter("uname"):返回String,当获取表单值或者url传值的时候要用这个。
request.getAttribute("user");返回的是一个Object类型的对象,一般要强转

存值:request.setAttribute("user",user);

转发:request.getRequestDispatcher("index.jsp").forward(request, response);


response对象:

设置字符编码:response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");

设置cookie:response.addCookie(c1);

重定向:response.sendRedirect("login.jsp");


pageContext 对象:

pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。
pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。


config 对象:

config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。


page 对象:

page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。


exception 对象:

exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

“exception” 对象则代表了JSP文件运行时所产生的例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了“<%@ page isErrorPage="true "%>”的JSP文件中使用。

若要使用exception 对象时,必须在page 指令中设定。< %@ page isErrorPage="true" %>才能使用。

exception提供的三个方法:

getMessage( ) 该方法返回错误信息。
printStackTrace( ) 该方法以标准错误的形式输出一个错误和错误的堆栈。
toString():该方法以字符串的形式返回一个对异常的描述。


application应用程序对象统计网站访问人数示例:

该对象代表web应用本身,整个web应用共享一个application对象,该对象主要用于在多个JSP页面或者Servlet之间共享变量。application通过setAttribute()方法将一个值放入某个属性,该属性的值对整个Web 应用有效,因此Web 应用的每个JSP 页面或Servlet都可以访问该属性,访问属性的方法为getAttribute 。
看下面的put-application.jsp页面,该页面仅仅声明了一个整型变量,每次刷新该页面时,该变量值加1,然后将该变量的值放入application 内。


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'application.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

</head>

<body>
<%
// 统计服务器的总浏览次数,application是与服务器共存亡,session与浏览器共存亡
Object ob = application.getAttribute("count");
int num = 0;
if(ob == null){
num = 1;
}else{
num = Integer.valueOf(ob.toString()) + 1;
}

application.setAttribute("count", num);
%>

<h3>总浏览人数:<%=application.getAttribute("count") %></h3>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: