jsp技术java web_Java Web 深入JSP技术(三)

JSP简介

Servlet看起来更像java类,生成html比较麻烦,需要调用out.println();JSP看起来更像HTML,是为了简化Servlet的工作而出现的替代品,JSP中可以镶嵌大段HTML代码及java代码。

JSP(Java Server Page)会被Tomcat自动编译,编译后的JSP跟HttpServlet一样,都是javax.servlet.Servlet接口的子类,JSP是另一种形式的servle。

JSP包括很多技术,包括

Java Bean,

自定义标签(Custom Tags),

EL表达式(Expression Language),

JSTL标准标签库(Java Standard Tag Library)等。

这些强大成熟的技术使得视图层(View Tier)有很大优势。

如果一个web应用中只含有JSP程序与HTML、图片等静态文件资源,则部署web应用时就不需要web.xml(Tomcat6 、Java EE 5.0之后版本)

JSP工作原理

JSP是一种Servlet,但是与HttpServlet工作方式不太一样。HttpServlet是先由代码编译为class文件后部署到服务器上,先编译后部署。而JSP是先部署源代码后编译为class文件,后部署后编译。

JSP生命周期

JSP也是Servlet,运行时只会有一个实例。跟Servlet一样,JSP实体初始化、销毁时也会调用Servlet的init()与destroy()方法。另外,JSP还有自己的初始化方法与销毁方法_jspInit()与_jspDestory()。

JSP语法

JSP源代码可以分为两部分:

模板数据(HTML代码,不会控制程序流程,不影响程序运行结果)

元素(Java部分,包括脚本(scriptlet)、JSP指令、JSP标签)

JSP脚本必须由“”括起来,中间部分必须遵循Java语法;

JSP输出可以使用out.println()方法,也可以使用“”输出各种类型数据;

JSP注释除了使用Java注释外,还可以使用“”引用;

JSP中声明方法与属性(全局变量)时,使用“”;

If语句块前后必须有“{”与“}”;

JSP指令

指令格式

*号表示有0个或多个属性

Directive指常见的指令有page、taglib、include等

Page指令可以设置很多属性

include指令可以实现页面的区块化(先包含后编译)

include行为(先运行后包含)

JSP行为

JSP行为(JSP Actions)是一组内置的标签,只要书写很少代码就能实现丰富的功能。JSP行为是对常用的JSP功能的抽象与封装,包括两种,自定义JSP行为与标准JSP行为。自定义JSP行为也就是JSP自定义标签。

标准JSP行为格式

常用行为

使用Java Bean(POJO->(Plain Ordinary Java Object))

嵌入Applet

实际上是对

request.getRequestDispatcher(“someServlet”).forword(request.response);

行为相当于JSP指令。

相当于,等等。

JavaWeb开发平台更倾向于使用directive行为而不是指令。

JSP隐藏对象

JSP中内置9个隐藏对象,有out、request、response、config、session、applaction、page、pageContext、exception

JSP配置

配置JSP同配置Servlet形式上完全一样,只是Servlet使用标签,而JSP使用

web.xml中支持对JSP的批量处理,包含两个子标签和

EL(Expression Language)表达式

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

UseBean将对象放入request中,EL表达式先从request中获取对象,找不到再去session中查找。

EL表达式能方便操作Java Bean、甚至集合等,并支持简单运算。但EL表达式不能直接访问普通的方法,以及静态属性

总结

与Servlet相比,JSP更适合与HTML打交道,而Servlet更适合与JAVA打交道。它们的特点决定了它们的分工不同,而现在的Java EE(J2EE)系统中,Servlet只用于处理业务逻辑,JSP只用于显示结果。

喜欢 (0)or分享 (0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值