📄 selecttag.java
字号:
package demo;
import java.io.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class SelectTag extends BodyTagSupport {
public int doEndTag() throws JspException {
try {
String ans = doSelect(bodyContent.getString());
pageContext.getOut().print(ans);
bodyContent.clearBody();
}
catch (Exception ex) {
throw new JspTagException("SqlTag: "+ex);
}
return EVAL_PAGE;
}
private String doSelect (String cmd) throws NamingException, SQLException {
StringBuffer ans = new StringBuffer("<H2>"+cmd+"</H2>");
InitialContext ic = new InitialContext();
DataSource dataSource = (DataSource)ic.lookup("java:comp/env/jdbc/Agency");
Connection con = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
con = dataSource.getConnection();
stmt = con.prepareStatement(cmd);
rs = stmt.executeQuery();
ans.append("<TABLE border=1>");
ResultSetMetaData rsmd = rs.getMetaData();
int numCols = rsmd.getColumnCount();
// get column header info
ans.append("<TR>");
for (int i=1; i <= numCols; i++) {
ans.append("<TH>");
ans.append(rsmd.getColumnLabel(i));
ans.append("</TH>");
}
ans.append("</TR>");
// get cmma separated data
while (rs.next()) {
ans.append("</TR>");
for (int i=1; i <= numCols; i++) {
ans.append("<TD>");
ans.append(rs.getString(i));
ans.append("</TD>");
}
ans.append("</TR>");
}
ans.append("</TABLE>");
}
finally {
if (rs != null) {
try {rs.close();} catch (SQLException ex) {}
}
if (stmt != null) {
try {stmt.close();} catch (SQLException ex) {}
}
if (con != null) {
try {con.close();} catch (SQLException ex) {}
}
}
return ans.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -