J2EE技术规范(四)——JSP基础
一、JSP概览
a、动态内容模版
b、使用定制的Java代码扩展HTML
c、被编译成Servlets
d、可将工作划分为内容制作和程序开发
(1)JSP请求处理
JSP请求由名为JSPServlet的WebLogic Server Servlet处理,包括:
a、将JSP转化为Servlet
b、将转化后的Servlet编译为class文件
c、执行JSP
(2)应用设计模型
A、JSP规范描述了一些应用设计模型
B、这四个模型是:
a、Simple Model(简单模型)
b、Forward Delegation Model
c、Include Delegation Model
d、Decouple Model
二、JSP语法
有两种JSP语法形式:
(1)标准语法
(2)XML语法
三、JSP Scriptlets
(1) 使用<%和%>添加包含可执行Java代码的scriptlets
(2)Sciptlets可以使用流控制
(3)在给定JSP中所有的Sciptlets结合起来必须是一个完整的Java代码逻辑块
我们看一下两个示例:
if语句使用的示例:
- <% if (userIsLogged){%>
- <H1>Welcome</H1>you are logged in
- <%}else{%>
- <H1>Waring</H1>you must log in
- <%}%>
浏览器输出:
JSP将根据用户是否登录问候用户
For循环语句使用的示例:
- <% for(int j=3;j<=3;j<=1;j--){ %>
- <H<%=j%>>jsps are great!!!
- </H<%=j%>>
- <%}%>
浏览器输出:
Jsps are great!!!
Jsps are great!!!
Jsps are great!!!
四、JSP Expressions (表达式)
(1)使用<%=和%>执行Java表达式
(2)任何一个Java表达式都是有效的
(3)Expressions的内容通常返回到客户端
Expressions引用变量,方法和对象:
五、JSP Declarations (声明)
(1) 使用<%!和%>声明类级的变量和方法
(2)这能够被整个JSP代码引用
声明变量和方法的示例:
- <%! double[] price={12.3,23.4,34.5}; //声明一个double的数组和返回doubles的方法
- double getTotal(){
- double total=0.0;
- for(int j=0;j<prices.length;j++){
- total+=prices[j]; //这能够从expressions,scriptlets和其它声明中引用
- return total;
- }
- }
- %>
五、JSP Actions
(1)Action是在请求时执行的JSP命令
(2)下表列出扩展JSP功能的六个Action标签
使用useBean action实例化一个JavaBean的示例:
- <jsp:useBean id="shoppingCart" class="com.bea.Shoopingcart"/>
- <% shoppingCart.addItem(new CD("U2"));%>
- <%=shoppingCart.getCount()%>
六、JSP Directives
(1)Directives是在编译时执行的JSP命令
(2)下面这三个directives能够改变JSP的行为
Directives使用的示例:
- <%@page import="mypackge.myClassA"%> 引用一个类
- <%@page errorPage="myErrowPage.jsp"%> 当异常时调用该JSP页
- <%page extends="myJSPSuperclass"%> 所要继承的类
- <% JSP java 青软