Jsp开发常用标签总结
来源:互联网 发布:孙俪淘宝店铺叫什么 编辑:程序博客网 时间:2024/06/06 02:03
Jsp开发常用标签总结
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
1 Jsp标签作用
Jsp标签主要在jsp页面执行java代码,用于替换jsp脚本。
2 Jsp标签分类
Jsp内置标签(动作标签): 不需要导入标签库
JSTL标签库: 需要导入标签库
自定义标签:需要导入标签库
3 Jsp内置标签
<jsp:forward/> 转发标签
用于转发
<jsp:param/> 参数标签
<jsp:incude/> 包含标签
用于包含其他页面
注意:
1)其原理是包含与被包含的页面先各自翻译成独立的java源文件,然后再运行时合并再一起。(先翻译再合并),这叫动态包含
====静态包含 vs 动态包含====
1)原理不一样
a)静态包含(先合并再翻译)
b)动态包含(先翻译再合并)
2)语法不一样
a)静态包含(includ指令: <%@include%>)
b)动态包含 (include标签:<jsp:include />)
3)参数传递不同
a)静态包含不能传递参数
b)动态包含可以向被包含页面传递参数
4 JSTL标签
jstl , java starardard tag libarary java标准标签库
以前: jsp2.0以前jstl不属于java规范。属于第三方的工具。需要导入jar包
现在: jsp2.0 jstl纳入javaee规范。不需要导入jar包。
JSTL标签库分类:
1)核心标签库 (core/c ) 使用最频繁的
2)国际化互标签库(fmt)
3)EL函数库 (fn)
4)数据库标签库(sql)基本不用
5)Xml标签库(x)基本不用
5 JSTL使用步骤
1)确保jstl的支持jar包已经导入到项目中
2)在jsp页面的顶部导入标签库
<%@taglib uri="tld文件的路径" prefix="标签库缩写"%>
tld文件: 标签库的声明文件(每套标签都有一个tld文件)
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3)使用标签库中的标签
<c:set></c:set>
6 核心标签库(开发中经常使用)
保存数据:
<c:set></c:set>
获取数据
<c:out value=""></c:out>
单条件判断:
<c:if test=""></c:if>
多条件判断
<c:choose></c:choose>
<c:when test=""></c:when>
<c:otherwise></c:otherwise>
数据遍历
<c:forEach></c:forEach>
<c:forTokens items="" delims=""></c:forTokens>
7 自定义标签
自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作。
8 自定义标签步骤
1)编写一个标签处理器程序,继承SimpleTagSupport类(使用自定义标签显示ip)
public class ShowIpTagextends SimpleTagSupport{
/**
*执行标签
*/
@Override
public void doTag()throws JspException, IOException {
//得到request对象
PageContext pageContext = (PageContext)this.getJspContext();
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
//得到客户ip
String ip = request.getRemoteHost();
//写出浏览器
pageContext.getOut().write("自定义标签实现获取客户端IP地址:"+ip);
}
}
2)在WEB-INT目录下建立tld文件,例如test.tld,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<!--标签库版本 -->
<tlib-version>1.1</tlib-version>
<!--标签库的缩写:简单名称 -->
<short-name>test</short-name>
<!--tld文件的唯一标记-->
<uri>http://gz.test.cn</uri>
<!--标签定义 -->
<tag>
<!--标签名称 -->
<name>showIp</name>
<!--标签对应的处理器程序 -->
<tag-class>gz.test.c_tag.ShowIpTag</tag-class>
<!--标签体输出格式 -->
<body-content>scriptless</body-content>
</tag>
</taglib>
3)在jsp页面中导入自定义标签库,再使用标签库中的标签
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="http://gz.itcast.cn" prefix="itcast"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>第一个自定义标签</title>
</head>
<body>
<%
//得到客户IP地址
//String ip = request.getRemoteHost();
//out.write("客户的IP地址为:"+ip);
%>
<test:showIp></test:showIp>
</body>
</html>
9 自定义标签作用
1)控制是否执行标签体内容
执行:
jspFragment.invoke(null) 把标签体内容输出到浏览器
不执行:
什么都不做!!!(不执行jspFragment.invoke(null))
2)控制是否执行标签余下的内容
执行:
什么都不做!!!
不执行:
抛出SkipPageException异常即可!
3)控制重复出现执行标签体内容
- Jsp开发常用标签总结
- 【JSP开发】JSP常用标签介绍
- JSP开发c标签易错总结
- JSP入门学习总结(一)JSP常用的标签
- javaweb学习总结—jsp简单标签标签库开发
- jsp常用标签
- JSP 常用标签
- JSP常用标签
- JSP常用标签
- jsp常用标签
- jsp 常用标签库
- jsp页面常用标签
- jsp六个常用标签
- JSP常用标签
- jsp 常用标签
- JSP常用标签
- JSP常用Form标签
- jsp常用标签
- ORA-17627: ORA-12577: Message 12577 not found; product=RDBMS; facility=ORA
- 读取配置文件工具类
- Redis的String对象
- Trafodion 架构简介
- 字母图形
- Jsp开发常用标签总结
- Ubuntu problems apt-get:Package has no installation candidate
- 关于h265封装mp4
- 内部类 .this 和 .new
- 检测内存泄漏的常见工具——LeakCanary
- SSH2里面遇到的问题——increment主键生成方式
- Medium 46题 Permutations
- java Vector 和ArrayList 区别和联系
- 在Android Studio中添加libs