JSP 应用程序–隐式对象

原文:https://www . geesforgeks . org/JSP-应用程序-隐式-对象/

在 JSP 中,应用程序是一个类型为【servlet context】的隐式对象。这是javax . servlet . servlet context的一个实例。当 web 应用程序或 web 项目部署在服务器上时,它由 web 容器一次性生成。

该对象用于从配置文件(web.xml)中获取初始化参数。它用于在整个 JSP 页面上分配属性和属性值。这表明由应用程序对象设置的任何属性都可以被所有 JSP 页面访问。在应用程序范围中,它还用于获取、设置和移除属性。

jsp 应用程序隐式对象在所有 JSP 页面中都有作用域。

隐式对象的应用方法

void set attribute(String attributeName,Object object) : 它在应用程序上下文中保存一个属性及其值,可用于 JSP 应用程序。例如:

application.setAttribute(Attribute, value of Attribute);

上面给出的语句应该已经保存了属性及其值。

对象 getAttribute(字符串属性名):它返回保存在给定属性名中的对象。例如,让我们看看上面例子中给出的语句。现在,如果在任何 JSP 页面中使用下面的语句,“s”的值会是多少?

String s= (String) application.getAttribute(Attribute);  

“s”的值将是“属性的值”,毕竟我们已经在 setAttribute 方法的帮助下放置了它,并且这个值是使用 getAttribute 方法获得的。

void remove attribute(String object name):为了从应用程序中消除给定的属性,使用此方法。例如:它将从应用程序中提取属性“Attribute”。如果我们试图在 getAttribute 方法的帮助下检索撤回属性的值,那么它将返回空值。

 application.removeAttribute(Attribute);

枚举 getAttributeNames() : 该方法返回保存在应用程序对象中的所有属性名称的枚举。

 Enumeration e = application.getAttributeNames();

字符串 getInitParameter(字符串参数名):对于给定的参数名,它返回初始化参数的值。示例:web.xml

可扩展标记语言

<web-app>

 

 <context-param>

 <param-name>parameter</param-name>

 <param-value>ValueOfParameter</param-value>

 </context-param>

 </web-app>

注意:这里我们假设上面给定的文件是 web.xml 文件。

 String s=application.getInitParameter("parameter");

“s”的值将是“ValueOfParameter”,它在配置文件(web.xml)的 param-value 标记中给出。

枚举 getInitParameterNames() : 所有初始化参数的枚举都是用这个方法给出的。

 Enumeration e= application.getinitParameterNames();

字符串 getRealPath(字符串值):在文件系统中,它将给定的路径转换为完整的路径。

 String abspath = application.getRealPath(/index.html);

根据实际的文件系统,abspath 的值将是一个绝对的 http URL。

void log(String message) : 这个方法将给定的内容设置到与应用程序相关的 JSP 容器的默认日志文件中。

 application.log(Error 404, Page not found);

上面的调用会将消息“错误 404,找不到页面”写入默认日志文件。

String getServerInfo() : 这个方法返回 JSP 容器的名称和版本。

 application.getServerInfo();

例子

index.html 文件

超文本标记语言

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<form action="welcome">
<input type="text" name="uname">
<input type="submit" value="go"><br/>
</form>

</body>
</html>

web.xml 文件

可扩展标记语言

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
  <display-name>HelloWorld</display-name>

  <servlet>
  <servlet-name>welcome</servlet-name>
  <jsp-file>/welcome.jsp</jsp-file>

  </servlet>

  <servlet-mapping>
  <servlet-name>welcome</servlet-name>
  <url-pattern>/welcome</url-pattern>
  </servlet-mapping>

  <context-param>
  <param-name>dname</param-name>
  <param-value>com.mysql.jdbc.Driver</param-value>
  </context-param>

</web-app>

welcome.jsp

超文本标记语言

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>GeeksforGeeks</title>
</head>
<body>

<%
out.print("Welcome "+request.getParameter("uname"));
String driver=application.getInitParameter("dname");
out.print("<br/>driver name is="+driver); 
%>

</body>
</html>

输出