JSP自定义标签——调用数据库(通过id号搜索相关信息)
一、创建新表(假设在master数据库下新建)
二、连接数据库
开始-->控制面板-->管理工具-->数据源-->系统DSN-->添加-->SQL Server-->名称:userdb-->服务器:(local)\SQLEXPRESS或选择本机名-->下一步-->下一步-->打钩-更改默认的数据库为:master-->下一步-->完成
三、DefinedTagData项目
1、新建Java类:User
package sample.model;
public class User {
private int id;
private String name;
private String phone;
public void setId(int id){this.id=id;}//setId中的d必须小写
public void setName(String name){this.name=name;}
public void setPhone(String phone){this.phone=phone;}
public int getID(){return id;}
public String getName(){return name;}
public String getPhone(){return phone;}
}
2、新建Java类:UserDAO
package sample.model; import java.sql.*;
public class UserDAO {
private ResultSet rst;
private Connection conn;
private void open()throws Exception{
String driver="sun.jdbc.odbc.JdbcOdbcDriver";
String url= "jdbc:odbc:userdb";//test--定义的数据库的名称
Class.forName(driver);
conn=DriverManager.getConnection(url);
}
private void close()throws SQLException{
if(rst!=null) rst.close();
if(conn!=null) conn.close();
}
public void save(User user)throws Exception{
String sql="";
open();
Statement stmt=conn.createStatement();
rst=stmt.executeQuery(sql);
close();
}
public void load(User user)throws Exception{
String sql="use master select name,phone from dbo.usera"+" where id = "+user.getID();
open();
Statement stmt=conn.createStatement();
rst=stmt.executeQuery(sql);
if(rst.next()){
user.setName(rst.getString(1));
user.setPhone(rst.getString(2));
}
close();
}
}
3、创建TLD文件
新建文件--> Web--> 标记库描述符
TLD名称:Data 前缀:data
4、创建标记处理程序
新建文件--> Web-->标记处理程序
类名:DataTag 包:sample.tag 要扩展的标记支持类:SimpleTagSupport
TLD文件:WEB-INF--> tlds--> Data 新建属性:color和id
package sample.tag; import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.JspException;
import sample.model.*; public class DataTag extends TagSupport {
private String id;//添加的属性
public void setId(String id) {
this.id = id;
}
private String color;//添加的属性
public void setColor(String color) {
this.color = color;
}
public int doStartTag(){
User user=new User();
user.setId(Integer.parseInt(id));
UserDAO dao=new UserDAO();
try{
dao.load(user);
JspWriter out=pageContext.getOut();
String html="<br><b style=\"color:"+color+"\">Welcome to Employee Detail Table.</b><br>";
html+=" <table border=\"1\"><tr><th>员工ID</th><th>员工姓名</th><th>联系电话</th></tr>";
html+="<tr><td>"+user.getID()+"</td><td>"+user.getName()+"</td><td>"+user.getPhone()+"</td></tr></table>";
out.println(html);
}catch(Exception e){
System.out.println(e.getMessage());
}
return SKIP_BODY;
} public int doEndTag() throws JspException{
return EVAL_PAGE;
}
}
PS:Data.tld内容
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<short-name>data</short-name>
<uri>/WEB-INF/tlds/Data</uri> <tag>
<name>DataTag</name>
<tag-class>sample.tag.DataTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<attribute>
<name>color</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<name>DataTable</name>
<tag-class>sample.tag.DataTable</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<name>color</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
</tag>
</taglib>
5、index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ taglib uri="/WEB-INF/tlds/Data" prefix="data"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<data:DataTag id="1" color="blue"/>
</body>
</html>
6、显示结果
JSP自定义标签——调用数据库(通过id号搜索相关信息)的更多相关文章
- 【转】Jsp自定义标签详解
一.前言 原本是打算研究EXtremeComponents这个jsp标签插件,因为这个是自定义的标签,且自身对jsp的自定义标签并不是非常熟悉,所以就打算继续进行扫盲,开始学习并且整理Jsp自定义标签 ...
- JSP 自定义标签
0 标签技术的API继承体系 1 作用 jsp自定义标签用于移除页面中的java代码 2 实现 2.1 标签处理类ViewIPTag.java package com.zsm.util; import ...
- JSP自定义标签开发入门
一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...
- 一个简单的jsp自定义标签
学到了一个简单的jsp自定义标签,后面有更多的例子,会更新出来: 例子1: 步骤: 1.编写标签实现类: 继承javax.servlet.jsp.tagext.SimpleTagSupport; 重写 ...
- JSP自定义标签库
总所周知,JSP自定义标签库,主要是为了去掉JSP页面中的JAVA语句 此处以格式化输出时间戳为指定日期格式为例,简单介绍下JSP自定义标签的过程. 编写标签处理类(可继承自javax.servlet ...
- jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题
jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题 之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一 ...
- JSP自定义标签开发入门《转》
JSP自定义标签开发入门 一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; ...
- Rhythmk 一步一步学 JAVA(7): jsp 自定义标签
1.实现Tag接口: TagSupport类实现了Tag接口,为我们提供了4个重要的方法(见表6-5). 1.1. TagSupport类中的常用方法 int doStartTag ...
- 【转】JSP自定义标签
转载自:http://www.cnblogs.com/edwardlauxh/archive/2010/05/20/1918587.html tld标签的描述文件 标签的描述文件是一个描述整个标签库标 ...
随机推荐
- js倒计时跳转页面
var t=10; setInterval(function refer(){ if(t>0){ document.getElementById("em").innerHTM ...
- js中转移符
"<a href='javascript:;' onclick='javascript:changeChannelRuleStatus(\"" + options. ...
- UITableView UITableViewCell
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- php file_get_contents() 用法
php 需要访问某个网页 <?php $fh= file_get_contents('http://www.baidu.com/'); echo $fh; ?> 知识扩充 file_get ...
- 利用Excel表格中的宏,轻松提取首字母
1.启动Excel 2003(其它版本请仿照操作),打开相应的工作表: 2 2.执行“工具→宏→Visual Basic编辑器”命令(或者直接按“Alt+F11”组合键),进入Visual Basic ...
- window.location.href无法跳转的解决办法
-------------------接收别人做的SSO单点登录项目,无源码,只是点击登出按钮一直不跳转. 原因是: <a href="javascript:;" oncli ...
- Web导出EXCEL
前台(客户端)导出EXCEL: 单纯的JS能够导出Excel的,一般都需要调用客户端所安装的Office Excel组件(COM接口)来完成这个工作. http://www.stepday.com/t ...
- HTML5 和HTML4的区别
1.推出理由和目标 HTml5的出现,对于web来说意义是非常重大的,因为它的意图是想要把目前web 上存在的各种问题一并解决掉. (1)web之间的兼容性很低 (2)文档结构不明确 (3)web应用 ...
- 四核exynos4412开发板使用网线上网注意事项
问:RP4412开发板板子可以插网线上网? 答:可以.支持WIFI.LAN.3/4G上网的.插网线没? 问:我插了,他还是提示让我连wifi. 答:你是上网页还是其他的APP. 网页可以直接打开,有部 ...
- ROS语音交互——科大讯飞语音合成TTS(二)
之前我用过科大讯飞的语音包,为了记录一下我重新使用一下 首先注册科大讯飞账号及应用,以后每个下载的在线使用SDK都是以此账户ID登录讯飞语音服务器. 下载科大讯飞在线合成包. $ unzip Linu ...