2013-04-22 115 views
0
<%@page language="java" contentType="text/html"%> 
<%@ page import="MyClasses.*"%> 
<html><head><title>Switch the log ON</title></head><body> 
<% 
**MyLog log = (MyLog)application.getAttribute("logFile");** 
if (log == null) { 
try { 
log = new MyLog(

我是Java和Jsp的新手。我从文档中获得了上述信息。我无法以粗体理解该行。有人能告诉我它看起来像一个类型转换吗?无法理解jsp语法

+0

将所有代码发布到jsp文件中。 – Jason 2013-04-22 02:39:58

回答

1

注意到日志文件对象(MyLog),并为其分配记录,如果对象是空进而以实例化一个新的对象。我首先阅读面向对象编程基础知识。

+0

是的,我应该和我正在阅读一个核心的Java并行。我可以在哪一部分看到上述类型的声明? – adarsh 2013-04-22 02:42:27

+0

你可以尝试阅读这个[链接](http://www.exforsys.com/tutorials/jsp/jsp-application-object-methods.html)。 虽然如果你正在阅读一本书,也许你不需要明白你现在在哪里。也许作者只希望你能在后面的章节中得到解释的第一口味。 – 2013-04-22 02:45:56

+0

感谢您的链接。我了解所有对象共享的应用程序对象及其方法。 – adarsh 2013-04-22 02:55:26

0

这是延迟初始化设计图案的一个例子。

private String var; 
public String getVar() { 
    if(var == null) { 
     var = "I was initialized lazily in a getter"; 
     return var; 
    } else { 
     return var; 
    } 
} 

正如你所看到的,var被初始化只有当它首次访问:如果并不需要它,它不会为您创建例如可以与下面的getter来表达在所有。使用这种模式,您可以避免事先创建太多对象,只有在需要时才创建它们。当对象很重并且很少使用对象时,这种方法可能会显着提高应用程序在负载下的性能。

这就是说,你会更好发现书籍/不主张小脚本的JSP中使用,因为它被认为是一种不好的编程实践资源。

0

1) JSP有许多隐式对象,其中1个是应用程序对象。

2) JSP的应用对象= servlet的的ServletContext对象(getServletConfig()。getServletContext()方法)。

3)这些对象用于访问web.xml的配置信息。还有就是每个Web应用程序只一个ServletContext的应用对象。

你的代码解释:

application.getAttribute("logFile")试图找到一些对象/值,其相关关键字符串(变量)是日志文件在上下文。