当前位置:Gxlcms > mysql > 一个开发人员眼中的JSP技术(下)_MySQL

一个开发人员眼中的JSP技术(下)_MySQL

时间:2021-07-01 10:21:17 帮助过:29人阅读

使用定制化的标签
  尽管你可以在JSP页面中植入Java代码并在服务器方执行,但是,JSP也支持使用定制标签来插入动态内容,它有一种机制可以让你在JSP页面中插入你自己的、与HTML类似的标签。换句话说,你的JSP网页能够使用插入Java代码的简单标签语法产生动态的内容。但定制标签的用处不是很大。

  创建一个定制标签比在JSP网页中使用简单的scriptlet要复杂得多,因为定制标签需要用几个步骤来把你的Java组件和JSP代码连接起来。不过,定制标签在分发和重复使用的时候就非常简单了。对定制标签的支持将在JSP创建工具中实现。

  在下面的例子中产生动态内容的JSP网页就使用了定制标签。注意,在这个例子中我们不再需要引入Java类、声明变量或写任何Java代码:

  

  <%@ taglib uri="/tlds/menuDB.tld" prefix="menu" %>

  

Today's Menu



  

Lunch



  

  insertCatchOfDay

  com.sun.CatchOfDayHandler

  

  Queries menu database for the catch of the day。

  


  

  meal

  

  


  

  与定义属性的名称一样,标签库描述符也能够定义数据类型并指定其属性(无论是否需要);在Tag Handler被执行之前,它允许JSP引擎去做某些错误检查。还有其他的信息,比如说为了使用JSP创建工具,库名和版本号也可以包含在标签库中。

更多的例子
  在下面的例子中,第一个例子在JSP页面中使用了HTTP请求对象 (HttpServletRequest) 来判断用户浏览器的版本并从三个HTML页面中的一个中返回相应的内容:


  

  <%@ page language=="java" info="Example JSP #1" %>

  

  

  <%! String agent; %>

  <%

  agent = request.getHeader("User-Agent");

  if ( agent.startsWith("Mozilla/4.0") {

  %>

  <%-- Return content for 4.0 browsers --%>

  <%@ include file="ver4.html" %>

  <%

  }

  else if ( agent.startsWith("Mozilla/3.0") {

  %>

  <%-- Return content for 3.0 browsers --%>

  <%@ include file="ver3.html" %>

  <%

  }

  else {

  %>

  <%-- Return content for other/unknown browsers --%>

  <%@ include file="other.html" %>

  <%

  }

  %>

  

  

  注意:此页面无须声明或初始化HTTP请求对象就可以直接对它进行访问。请求和响应(HttpServletResponse)对象都能够隐含地在JSP 页面中使用。和servlet一样,JSP页面能够使用请求对象从HTML窗体中获得参数值。

  

  <%@ page language="java" info="Example JSP #2" %>

  

  

  <%@ include file="header.html" %>

  

  <%! String selections[], info; %>

  

Here are your current selections:



  %>



      <%

      for(int x = 0; x < selections.length; x++) {

      %>


  •   <%= selections[x] %> : <%= db.getInfo(selections[x]) %>

      <%

      }

      %>
<%

  }

  else {

  %>

  

(no items selected)

人气教程排行