JSP基本概念学习(2)

JSP指令

格式

<%@ directive attribute=value%>

上面的格式中的星号代表可以有0或者多个属性

常见的directive可以有page,taglib,include等

page 指令

最常用指令,用于声明页面的属性。多个属性可以写在一个指令中,也可以分开写,但每个指令(import除外)只允许出现一次。

include指令

最常用的指令之一,用于包含jsp页面或者HTML页面,达到页面重用的目的。

<%@ include file=“foot.jp”%>

还有一种使用JSP命令的包含方式

<jsp:include page=“foo.jsp”/>

两者的区别是include是先包含后编译,后者是先运行后包含。也就是说,前者有可能会有变量名冲突的总是,后者由于是编译结果的包含,所以不存在这个问题。但也没有办法做到变量共享和重用了。

taglib指令

taglib用来指明JSP内置的标签库,它有两个属性,一个是URI,另一个是prefix属性。格式如下:

<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

JSP 行为

格式: <jsp:elements { attribute=“value”}/>

JSP行为中最常用的就是include行为。

JSP行为可以更好的组织代码,因为它基本上可以代替原来JSP中出现的<%%>代码块完成相应的功能。

Java Bean(POJO)

JavaBean 是普通的Java类。也叫POJO,这种类只有私有属性与对应的getter和setter方法。

useBean

用于在JSP中定义一个Java Bean对象,其格式为

<jsp:useBean id=“benaId” class=“className” scope=“Value”/>

scope可以为page,request,session,application中的任何一种。

getPropert和setPropery

这两个行为用于获取和设置JavaBean的属性。

EL表达式

EL表达式是指用“${}”括起来的脚本,用来更方便的读取对象。EL只能写在JSP的HTML代码中,不能写在<%%>的JSP脚本中。

${param.foo}

EL表达式类似于MVC中的Razor语法引擎,不同的是MVC中的Razor更进一步,也更更方便一些。

EL表达式是不能直接访问普通的方法和静态属性的。这点需要注意。

在现有的Java EE(J2EE)系统中,Servlet只用于处理业务逻辑,而JSP通常只用于显示结果。也就是说,一般的现代框架中,其视图引擎使用的多是JSP。

当然,使用其它的语言作视图引擎也是可以的,例如使用PHP作为View显示,而使用Java 的Servlet作为后台处理逻辑就是很多互联网公司的做法。而且相当不错。