一、
自定义标签&编码实战
1)自定义标签步骤:
1.1 编写标签处理器类,继承SimpleTagSupport类,覆盖doTag方法
1.2 在WEB-INF目录下建立tld文件,在tld配置标签
1.3 在jsp页面导入标签库,使用taglib指令
1.4 在jsp页面中使用标签库中的标签
2)自定义标签生命周期:
SimpleTag接口:
setJspContext(JspContext context) --传入pagContext对象
setParent(JspTag tag) --传入父标签对象
setXXX(参数) --给属性赋值
setJspBody(JspFrament jspBody) --传入标签体内容
doTag() --执行标签
3)自定义标签的作用:
3.1 控制是否输出标签体内容
输出: this.getJspBody().invoke(null)
不输出: 不调用invoke(null)方法
3.2 控制标签余下内容是否输出
输出: 什么不都做!
不输出: 抛出SkipPageException异常
3.3 重复输出标签体内容
重复调用: this.getJspBody().invoke(null)
3.4 修改标签体内容
StringWriter sw = new StringWriter();
this.getJspBody().invoke(sw);
String content = sw.toString();
//修改内容
//手动输出到浏览器
this.getJspContext().getOut().writer(修改过的内容);
3.5 带属性的标签
a)在标签处理器类中声明成员变量和setter方法,用于给属性变量赋值。
b)在tld文件中声明属性
c) 使用属性
4)JavaBean规范
4.1 必须要有无参的构造方法
4.2 所有成员属性必须私有化 (private)
4.3 必须提供公开的getter和setter方法
5)MVC开发模式
MVC就是servlet+jsp+javabean的开发模式
M,Model,javabean实现,封装业务数据
V,View,jsp实现,显示数据
C,Controller,servlet实现,接收参数,调用业务逻辑,跳转视图
6)三层结构开发
dao层: 数据访问对象。实现对数据的操作相关的方法
service层: 业务逻辑对象。实现对项目的业逻辑处理相关的方法
web层: 表现层。处理和用户直接相关的,接收参数,处理参数,跳转视图,展示数据。
二、jsp和servlet的区别
Servlet:
Servlet 是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,
Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
Jsp:
JSP 全名为Java Server Pages,中文名叫java服务器页面,
其根本是一个简化的Servlet设计。
JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
相同点
jsp经编译后就变成了servlet,jsp本质就是servlet,
jvm只能识别java的类,不能识别jsp代码,
web容器将jsp的代码编译成jvm能够识别的java类。
不同点
JSP侧重视图,Sevlet主要用于控制逻辑。
Servlet中没有内置对象 。jsp中有内置对象