0
点赞
收藏
分享

微信扫一扫

JSP内置page对象和config对象

一、page对象

        page 对象是为了执行当前页面应答请求而设置的 Servlet 类的实体,即显示 JSP 页面自身,与类的 this 指针类似,使用它来调用 Servlet 类中所定义的方法,只有在本页面内才是合法的。它是 java.lang.Object 类的实例,对于开发 JSP 比较有用。下表列出了 page 对象常用的方法。

 page对象常用的方法

方法

说明

class getClass()

返回当前 Object 的类

int hashCode

返回 Object 的 hash 代码

String toString

把 Object 对象转换成 String 类的对象

boolean equals(Object obj)

比较对象和指定的对象是否相等

void copy (Object obj)

把对象拷贝到指定的对象中

Object clone()

复制对象(克隆对象)

【例1】page 对象的应用。用 page 对象访问当前页面的信息,代码如下:

<%@ page contentType="text/html;charset=utf-8" import="java.lang.Object" %>
<html>
<body>
    <h2> page对象应用</h2>
<%
Object obj;
obj=null;
%>
返回当前页面所在类:<%=page.getClass()%> <br>
返回当前页面的 hash 代码:<%=page.hashCode()%> <br>
转换成 String 类的对象:<%=page.toString()%> <br>
比较1:<%=page.equals(obj) %> <br>
比较2:<%=page.equals(this) %>
</body>
</html>

二、config 对象

config 对象是 javax.servlet.ServletConfig 类的实例,表示 Servlet 的配置信息。

 当一个 Servlet 初始化时,容器把某些信息通过此对象传递给这个 Servlet,这些信息包括 Servlet 初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个 ServletContext 对象),config 对象的应用范围是本页。

开发者可以在 web.xml 文件中为应用程序环境中的 Servlet 程序和 JSP 页面提供初始化参数。表 1 列出了 config 对象的常用方法。      config对象的常用方法

方法

说明

ServletContext getServletContext()

返回所执行的 Servlet 的环境对象

String getServletName()

返回所执行的 Servlet 的名字

String getInitParameter(String name)

返回指定名字的初始参数值

Enumeration getlnitParameterName()

返回该 JSP 中所有初始参数名,一个枚举

Config对象的使用

1、WEB-INF目录中页面文件的执行

凡是在WEB-INF中的文件是不能直接浏览的,必须通过WEB-INF目录中的web.xml配置文件配置后才能浏览。如下面在WEB-INF创建一个test.jsp文件代码如下:

<%@ 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>
	这是在WEB-INF文件夹中的jsp文件
</body>
</html>

如果我们直接执行该文件,则在浏览器中显示如下的错误信息

HTTP Status 404 - 
type Status report
message 
description The requested resource is not available.

Apache Tomcat/8.0.32

但如果我们对WEB-INF/web.xml文件进行修改如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
 <servlet>
  <servlet-name>te</servlet-name>
  <jsp-file>/WEB-INF/test.jsp</jsp-file>
  </servlet>
  <servlet-mapping>
  <servlet-name>te</servlet-name>
  <url-pattern>/te.jsp</url-pattern>
  </servlet-mapping>
</web-app>


上面代码中最重要的内容为

<servlet>
 	<servlet-name>te</servlet-name>
 	<jsp-file>/WEB-INF/test.jsp</jsp-file>
  </servlet>
  <servlet-mapping>
 	<servlet-name>te</servlet-name>
 	<url-pattern>/te.jsp</url-pattern>
  </servlet-mapping>

其中<servlet></servlet>和<servlet-mapping></servlet-mapping>主要的作用是把WEB-INF目录中的test.jsp文件映射为“/te.jsp”,也就是说我们要运行“WEB-INF”目录中的test.jsp页面,只在站点主目录中输入te.jsp就可浏览“WEB-INF/test.jsp”页面的内容。


2、获取WEB-INF/web.xml配置文件中的信息

如我们可以把数据库的驱动程序、数据库地址、管理员和密码保存在web.xml文件中,然后通过config对象获取,如web.xml配置文件的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
 	<servlet-name>getconfig</servlet-name>
 	<jsp-file>/WEB-INF/getconfig.jsp</jsp-file>
 	<init-param>
 		<param-name>driver</param-name>
 		<param-value>org.gjt.mm.mysql.Driver</param-value>
 	</init-param>
 	<init-param>
 		<param-name>url</param-name>
 		<param-value>jdbc:mysql://localhost:3306/stu</param-value>
 	</init-param>
 	<init-param>
 		<param-name>user</param-name>
 		<param-value>root</param-value>
 	</init-param>
 	<init-param>
 		<param-name>password</param-name>
 		<param-value>admin</param-value>
 	</init-param>
  </servlet>
  <servlet-mapping>
 	<servlet-name>getconfig</servlet-name>
 	<url-pattern>/getconfig.jsp</url-pattern>
  </servlet-mapping>
</web-app>

其中以内容为我们连接mysql数据用到的信息,如下

<init-param>
 		<param-name>driver</param-name>
 		<param-value>org.gjt.mm.mysql.Driver</param-value>
 	</init-param>
 	<init-param>
 		<param-name>url</param-name>
 		<param-value>jdbc:mysql://localhost:3306/stu</param-value>
 	</init-param>
 	<init-param>
 		<param-name>user</param-name>
 		<param-value>root</param-value>
 	</init-param>
 	<init-param>
 		<param-name>password</param-name>
 		<param-value>admin</param-value>
 	</init-param>

然后我们可以在页面中通过config对象来读取这些配置信息,getconfig.jsp文件代码如下(注意getconfig.jsp文件也是在WEB-INF目录中,并在web.xml文件进行映射):

<%@ 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>
<%
String driver=config.getInitParameter("driver");
String url=config.getInitParameter("url");
String user=config.getInitParameter("user");
String pass=config.getInitParameter("password");
%>
<br>mysql数据库驱动是:<%=driver %>
<br>访问数据库的地址:<%=url %>
<br>数据库管理员:<%=user %>
<br>数据库管理的密码:<%=pass %>
</body>
</html>

浏览的结果如下:

mysql数据库驱动是:org.gjt.mm.mysql.Driver 
访问数据库的地址:jdbc:mysql://localhost:3306/stu 
数据库管理员:root 
数据库管理的密码:admin













举报

相关推荐

0 条评论