无法理解jsp语法

时间:2013-04-22 02:29:39

标签: jsp

<%@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的新手。我从文档中得到了以上几行。我无法用粗体理解这一行。有人可以告诉我它看起来像是一个类型吗?

3 个答案:

答案 0 :(得分:1)

获取logFile对象(MyLog)并将其分配给日志,如果对象为空,则继续实例化新对象。我首先阅读了面向对象编程的基础知识。

答案 1 :(得分:0)

这是延迟初始化设计模式的一个示例。您的示例可以使用以下getter表示:

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

正如您所看到的,var仅在第一次访问时才初始化:如果不需要,则根本不会创建它。使用此模式,您可以预先避免创建太多对象,并仅在需要时创建它们。当对象非常繁重并且很多对象很少使用时,这种方法可以显着提高应用程序在负载下的性能。

也就是说,你最好找到不提倡在JSP中使用scriptlet的书籍/资源,因为它被认为是一种糟糕的编程习惯。

答案 2 :(得分:0)

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

2) JSP的应用程序对象= servlet的 ServletContext 对象( getServletConfig()。getServletContext())。

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

您的代码解释:

application.getAttribute("logFile")正在尝试在上下文中找到某个对象/值,其关联的字符串(变量)为 logFile