2013-04-22 114 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")試圖找到一些對象/值,其相關關鍵字符串(變量)是日誌文件在上下文。