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标签的描述文件 标签的描述文件是一个描述整个标签库标 ...
随机推荐
- java连接数据库步骤
一.加载JDBC驱动程序 Class.forName(driver) ; 如果直接是上面的代码运行,一定会报错.找不到驱动类java.lang.ClassNotFoundException: com. ...
- jmeter ForEach Controller学习
ForEach Controller: foreach一般和用户定义变量一起使用,在用户定义变量中定义3个变量 foreach中输出变量名称(vname),这种方式可以生成一个vname的变量,点击运 ...
- c# 打乱数组
有时候得到了一个List,我想把它随机排列一下顺序.而且如果针对不同类型的List都能用,就要用到泛型. 其实思想很简单,就是从原List中每次随机取一项,添加到新的List中,并在原List中删除. ...
- POJ 3278 Catch That Cow
注:本人英语很渣,题目大意大多来自百度~=0= 题目大意 农民约翰需要抓住他的牛,他和他的牛在一条直线上(估计是一维生物),约翰在N (0 ≤ N ≤ 100,000)处,他的牛在 K (0 ≤ K ...
- 项目实际部署记录(ubuntu)
服务器为Ubuntu系统 安装JDK版本:jdk-7u79-linux-x64.tar.gz 安装tomcat版本:apache-tomcat-7.0.69.tar.gz 数据库oracle ,已导出 ...
- struct和typedef struct彻底明白了
struct和typedef struct 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int ...
- spark示例
1)java(App.java) package com.ejiajie.bi.hello; import org.apache.spark.api.java.JavaSparkContext; im ...
- linux之PATH环境变量
在linux中,我们发现一些命令在任何目录都能执行,并不会出现找不到这个命令文件的提示,这其中就是PATH变量帮我们定位的!首先我们来查看一下PATH变量 [root@localhost /]# ec ...
- linux下关于Apache设置二级域名绑定二级目录的方法
背景:对于一些论坛网站,某些目录需要制定二级域名去访问,这时候就要在apache中用二级域名绑定二级目录. 方法: 1.首先你要找到apache安装路径,在apahce安装路径下的conf文件夹中找到 ...
- 复利计算软件v3
#include <windows.h> #include<stdio.h> #include<math.h> void count(){ int a,b; dou ...