JSP概述

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

这四个模型是:
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等上的)资源共享。


[b]二、JSP组件[/b]

有两种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>


[b]三、JSP Actions[/b]

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

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


[b]四、JSP Directives(指令)[/b]

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 %> 加载自己制定的标签


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


[b]六、高级JSP[/b]

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

[i]创建标签:[/i]
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中定义的标识。

[i]创建标签库:[/i]
counter.tld

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

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

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

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

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


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


[i]使用jsp编译器jspc[/i]:
1.JSPServlet使用叫做jspc的JSP编译器把JSPs转化成serlvets
2.你能够冲命令行调用jspc进行调试而不用浏览器
3.产生servlets实现了javax.servlet.jsp.JspPage
使用JSP编译器jspc的语法:
C:\>java weblogic.jspc -options fileName
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值