一、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语句使用的示例:

  1. <% if (userIsLogged){%>  
  2.   <H1>Welcome</H1>you are logged in   
  3. <%}else{%>  
  4.   <H1>Waring</H1>you must log in  
  5. <%}%>  

浏览器输出:

 

JSP将根据用户是否登录问候用户

For循环语句使用的示例:

  1. <% for(int j=3;j<=3;j<=1;j--){ %>  
  2.   <H<%=j%>>jsps are great!!!  
  3.     </H<%=j%>>  
  4. <%}%>  

浏览器输出:

 

Jsps are great!!!

Jsps are great!!!

Jsps are great!!!

四、JSP Expressions (表达式)

(1)使用<%=和%>执行Java表达式

(2)任何一个Java表达式都是有效的

(3)Expressions的内容通常返回到客户端

Expressions引用变量,方法和对象:

五、JSP Declarations (声明)

(1) 使用<%!和%>声明类级的变量和方法

(2)这能够被整个JSP代码引用

声明变量和方法的示例:

  1. <%! double[] price={12.3,23.4,34.5}; //声明一个double的数组和返回doubles的方法   
  2.         double getTotal(){  
  3.         double total=0.0;  
  4.         for(int j=0;j<prices.length;j++){  
  5.            total+=prices[j]; //这能够从expressions,scriptlets和其它声明中引用   
  6.            return total;  
  7. }  
  8. }  
  9. %>  

 

五、JSP Actions

(1)Action是在请求时执行的JSP命令

(2)下表列出扩展JSP功能的六个Action标签


 

使用useBean action实例化一个JavaBean的示例:

  1. <jsp:useBean id="shoppingCart" class="com.bea.Shoopingcart"/>  
  2. <% shoppingCart.addItem(new CD("U2"));%>  
  3. <%=shoppingCart.getCount()%>  

 

六、JSP Directives

(1)Directives是在编译时执行的JSP命令

(2)下面这三个directives能够改变JSP的行为

Directives使用的示例:

  1. <%@page import="mypackge.myClassA"%> 引用一个类  
  2. <%@page errorPage="myErrowPage.jsp"%> 当异常时调用该JSP页  
  3. <%page extends="myJSPSuperclass"%> 所要继承的类  
  4. <% JSP java 青软