JSP概述

一、jsp规范描述了一些应用设计模型:

这四个模型是:
1.Simple Model(简单模型):由jsp直接处理,然后将结果返回给客户端。
2.Forward Delegation Model:使用<jsp:forword...>(每次将当前的request和response资源永久forward到下一个jsp)来实现,可以多层,使用response返回给客户端。
3.Include Delegation Model:在jsp执行的过程正可以暂时的将request和response交给其他的jsp,其他的jsp处理完以后,再返回回来,有当前的jsp返回结果给最原始的客户端。
4.Decoupled Model(松散模型):可以实现(部门间,企业内部,internet等上的)资源共享。


二、JSP组件

有两种JSP语法形式:
标准语法,XML语法(在JSP1.2中完成)

    标准JSP语法                 JSP文档语法(XML)
1.<%@ page... %>                 <jsp:directive.page.../>  
2.<%@ include... %>              <jsp:driective.include.../>
3.<%! ... %>                     <jsp:declaration>...</jsp:declaration>
4.<% ... %>                      <jsp:scriptlet>...</jsp:scriptlet>
5.<%= ... %>                     <jsp:expression>...</jsp:expression>
6.<%@ taglib uri="u"%>           <jsp:root>
                                 xmlnx:jsp="http://java.sun.com/jsp_1_2"       xmlnx:myTagLibPrefix="u"
                       </jsp:root>


三、JSP Actions

Action是在请求时执行的JSP命令。
下表列出扩展JSP功能的六个Action标签:

     Action           表述
useBean           实例化一个JavaBean类并赋予一个名字
getProperty       返回指定属性的对象
setProperty       设置命名的属性值
include           在JSP中包包含文件
forward           把请求传到另一个JSP或Servlet
plugin            如果需要产生用于下载Java插件的内容


四、JSP Directives(指令)

Directives是在编译时执行的JSP命令
下面三个directives能够改变JSP的行为
Directive         描述
page          允许import,声明出错页面。
include       包括另一个文件。
taglib         加载用户开发的标签的定义。

<%@ page import="mypackage.myClassA" %>   引入一个类
<%@ page errorPage="myErrorPage.jsp" %>   当异常时调用该JSP页
<%@ page extends="myJSPSuperclass" %>     所也集成的类
<%@ include file="myHeaderFile.html" %>      包含一个头文件
<%@ taglib uri=myCustomTags.tld prefix=custom %>  加载自己制定的标签


五、八个内置对象
  对象                类型                    描述
  request       HttpServletRequest     与Servlets相同
  response      HttpServletResponse    与Servlets相同
  session       HttpSession            用于跟踪用户状态
  config        ServletConfig          JSP的初始设置
  out           JspWriter              用于从scriptlets输出动态内容
  pageContext   pageContext            访问一些页面属性
  application   ServletContext         与Servlet容器通信
  page          HttpJspPage            表示从JSP残生的Servlet实例


六、高级JSP

制定标签:
使用taglib指令加载
<%@ taglib uri="counter" prefix="countLib" %>
<html><body>
<p>This page has been visited<countLib:display/>times!
</body></html>

创建标签:
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

public class Display extends TagSupport{
  public int doStartTag() throws JspException{
  File countFile = new File("count.tmp");
  int count = Count.getCount(countFile);
  JspWriter out=pageContex.getout();
  try{
    out.print(count);
}catch(IOException ioe){
    terurn(SKIP_BODY);
}
}
}

SKIP_BODY是在TagSupport中定义的标识。

创建标签库:
counter.tld

<taglib
<...>
<tag>
  <name>display</name>
  <tag-class>staplerz.tagext.counter.Display</tag-class>
  <body-content>empty</body=content>
</tag>
</taglib>

创建好后,就可以将标签库部署在web application里面了。

.tld文件映射到web.xml中的URL:
<web-app>
<taglib>
  <taglib-url>counter</taglib-url>
  <taglib-location>/WEB-INF/counter.tld<taglib-location>
</taglib>
</web-app>

使用URI加载标签库,声明prefix并且使用新的标签:
<%@ taglib uri="counter" prefix="countLib" %>
<html><body>
<p> This page has been visited<countLib:display/>times!
</boyd></html>

定义和使用标签库的手顺:
1.编写标签;--Display.java编译后,将class文件放置到特定位置如classes目录里等
2.在标签库中注册;--counter.tld
3.在web-app中启用该标签库;--web.xml中的<taglib>
4.使用标签库。--在count.jsp中使用。



在weblogic中配置JSPServlet:
配置项有:
precompile
compileCommand
verbose
packagePrefix
keepgenerated
pageCheckSeconds
encoding



使用jsp编译器jspc
1.JSPServlet使用叫做jspc的JSP编译器把JSPs转化成serlvets
2.你能够冲命令行调用jspc进行调试而不用浏览器
3.产生servlets实现了javax.servlet.jsp.JspPage
使用JSP编译器jspc的语法:
C:\>java weblogic.jspc -options fileName

你可能感兴趣的:(jsp,Web,servlet,weblogic,企业应用)