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)控制重复出现执行标签体内容

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 违停单子丢了怎么办 沙发弹簧包坏了怎么办 bt种子被和谐了怎么办 苹果手机id密码忘了怎么办 墙漆颜色太深了怎么办 油漆颜色太深了怎么办 墙面漆颜色太深怎么办 古代打仗牙掉了怎么办 乐视电视没声音怎么办 老公疑心病很重怎么办啊 被安装了尿道锁怎么办 狼青小狗腿罗圈怎么办 备孕期间有霉菌怎么办 虫子进皮肤里了怎么办 生完孩子肚子越来越大怎么办 怀孕8个月肚子小怎么办 孕晚期胎儿不长怎么办 肚子上肉特别多怎么办 奶堵了有硬块怎么办 便秘5天肚子胀怎么办 上火大便拉不出来怎么办 大便拉不出来肚子痛怎么办 戒奶奶涨有硬块怎么办 忌奶的时候涨奶怎么办 娃儿隔奶,,奶涨怎么办 狗肚子很大很鼓怎么办 注册不了的二建怎么办 专升本没考过怎么办 警察乱拘留人该怎么办 玩英雄联盟太卡怎么办 一方离婚证丢了怎么办 遭遇呼死你软件怎么办 开车遇见碰瓷的怎么办 遇到碰瓷老人的怎么办 睿强遥控锁坏了怎么办 地暖分水器坏了怎么办 京东赠品无货怎么办 图书馆的书丢了怎么办 三次临牌用完了怎么办 m3u8文件只有10k怎么办 寿县到淮南高铁怎么办