package tree;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
* 实现无限级分类目录树的Servlet
* 完成数据库的连接
* 完成分类的查询,增加,删除等操作
* 编写日期:2007-10-05
* @author 何裕浩 *
*/
public class MySort extends HttpServlet{
public int Id;
public String name;
public int parentId;
private Connection conn;
private Statement stmt;
public ResultSet rs;
int level=0;
PrintWriter out;
/*覆盖doPost方法*/
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
String dsn=request.getParameter("dsn");
String user=request.getParameter("user");
String password="";
String sql=request.getParameter("sql");
request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
out=response.getWriter();
OpenConn(dsn,user,password); //建立连接
show(sql,0);
closeConn();
}
//加载驱动程序,建立数据库的连接
public void OpenConn(String dsn,String user,String password){
try{
dsn = "jdbc:mysql:" + dsn;
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(dsn,user,password);
}catch(Exception e){
System.err.println("aq.executeQuery:"+e.getMessage());
}
}
//查询
public ResultSet executeQuery(String sql){
try{
stmt=null;
rs=null;
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}catch(SQLException e){
System.err.println("aq.executeQuery:"+e.getMessage());
}
return rs;
}
//更新
public void executeUpdate(String sql){
try{
stmt=null;
stmt=conn.createStatement();
stmt.executeUpdate(sql);
}catch(SQLException e){
System.err.println("aq.executeUpdate:"+e.getMessage());
}
}
//用递归算法,获得某一个分类的等级,0为顶级分类
public int getLevel(String sql,int Id){
try{
String sql2=sql+" where Id="+Id;
ResultSet result=executeQuery(sql2);
while(result.next()){
parentId=result.getInt("parentId");
}
}catch(SQLException e){
System.err.println("aq.executeUpdate:"+e.getMessage());
}
while(parentId!=0){
level++; //level为全局变量,其他函数使用完后都应清零
getLevel(sql,parentId); ////递归
}
return level;
}
//检测当前分类是否为最底层的分类
public boolean isLast(String sql,int Id){
boolean last=false;
try{
String sql2=sql+" where parentId="+Id;
ResultSet result=executeQuery(sql2);
rs.next();
if(rs.getRow()==0)
last=true;
else
last=false;
}catch(SQLException e){
System.err.println("aq.executeUpdate:"+e.getMessage());
}
return last;
}
//用递归算法,显示分类之间的父子关系
public void show(String sql,int parentId){
int printCount=0;
String li="";
try{
String sql2=sql+" where parentId="+parentId;
ResultSet result=executeQuery(sql2);
while(result.next()){
Id=result.getInt("Id");
name=result.getString("name");
printCount=getLevel(sql,Id);
out.print("<html>\n<body>");
for(int i=0;i<printCount;i++)
out.print(" ");
if(level==0)
li="<img src=\"web/images/close.gif\"/>";
else if(isLast(sql,Id))
li="<img src=\"web/images/lastnodeline.gif\"/>";
else
li="<img src=\"web/images/midopenedfolder.gif\"/>";
out.println(li+"<a href=\"show.jsp?Id="+Id+"\" target=\"main\">"+name+"</a><br>");
out.print("\n</body>\n</html>");
level=0; //level为全局变量,其他函数使用完后都应清零
show(sql,Id); //递归
}
}catch(SQLException e){
System.err.println("aq.executeUpdate:"+e.getMessage());
}
}
//关闭连接
public void closeConn(){
try{
conn.close();
}catch(SQLException e){
System.err.println("aq.closeConn:"+e.getMessage());
}
}
/*覆盖doGet方法*/
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
doPost(request,response);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
其他类别JSP无限级分类目录树-sorttree.zip
共35个文件
jsp:15个
gif:9个
class:2个
需积分: 1 0 下载量 200 浏览量
2024-05-28
16:27:57
上传
评论
收藏 549KB ZIP 举报
温馨提示
JSP无限级分类目录树_sorttree /*覆盖doPost方法*/ public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ String dsn=request.getParameter("dsn"); String user=request.getParameter("user"); String password=""; String sql=request.getParameter("sql"); request.setCharacterEncoding("gb2312"); response.setCharacterEncoding("gb2312"); out=response.getWriter(); OpenConn(dsn,user,password); //建立连接 show(sql,0); closeConn(); }
资源推荐
资源详情
资源评论
收起资源包目录
[其他类别]JSP无限级分类目录树_sorttree.zip (35个子文件)
[其他类别]JSP无限级分类目录树_sorttree
sortTree
.classpath 433B
.mymetadata 297B
src
tree
MySort.java 4KB
bean
SortBean.java 3KB
WebRoot
WEB-INF
classes
tree
MySort.class 5KB
bean
SortBean.class 3KB
lib
mysql-connector-java-5.0.3-bin.jar 482KB
web.xml 428B
web
show.jsp 758B
conn.jsp 124B
left.jsp 759B
top.jsp 904B
bottom.jsp 430B
index.jsp 1KB
update_exec_conf.jsp 798B
delete_exec.jsp 1KB
update_exec.jsp 2KB
delete.jsp 866B
delete_exec_conf.jsp 418B
add.jsp 1KB
add_exec.jsp 724B
images
lastnodeline.gif 841B
close.gif 962B
transparent.gif 43B
midclosedfolder.gif 870B
midopenedfolder.gif 865B
vertline.gif 843B
open.gif 937B
midnodeline.gif 851B
line.gif 860B
main.jsp 1KB
update.jsp 866B
META-INF
MANIFEST.MF 39B
.project 1KB
.myeclipse
x使用说明.zip 48KB
共 35 条
- 1
资源评论
小菜源
- 粉丝: 710
- 资源: 363
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功