哪位知道的给指点一下,JSP文件操作

zhangleibbq 2003-09-15 02:50:36
我用的服务器是Tomcat4.0,我写了一个Bean功能是生成一个HTML文件,但是我在JSP面页中
调用该Bean的时候HTML不能正常的生成,但是main方法中能正常地生成,哪位帮我看看是什么情况,该Bean的代码如下
package classes;

import java.sql.*;
import javax.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.io.*;
import java.text.NumberFormat;

/**产生拓朴图的类*/
public class TuopuCreater
{
private JspWriter writer;
public TuopuCreater()
{
}
/**产生拓朴图Html文件*/
public void create() throws Exception
{
try{this.writeHtmlHead();
this.getPictureRoot();
this.writeHtmlEnd();
}catch(Exception e){throw e;}
}
/**找到拓朴图的根元素*/
private void getPictureRoot() throws Exception
{
boolean bb=false;
String imagepath = "";
String deptname = "";
String deptid = "";
try{
DataBaseOperator dboperator = new DataBaseOperator();
String sql = "Select ImagePath,DeptName,DeptID From DeptInfo Where RelationDeptID ='无'";
ResultSet rs = dboperator.executeQuery(sql);
while(rs.next())
{
imagepath = rs.getString("ImagePath");
deptname = rs.getString("DeptName");
deptid = rs.getString("DeptID");
bb=true;
}
}catch(Exception e){throw e;}
String str[][] = new String[1][3];
str[0][0] = imagepath;
str[0][1] = deptname;
str[0][2] = deptid;
if(bb==true)
this.nextLevel(str);
System.out.println("Creating root...");
}
/**找到其他元素*/
public void setWriter(JspWriter jw)
{
this.writer = jw;
}
/**将每一个部门写入Html的方法*/
private void writeDepToHtml(String str[][])
{
//将每一层的部门信息写入Html文档
double countDep=str.length;
//规定每个部门占用的宽度
double dd=1/(countDep+2);
//System.out.println("dd的值: "+dd);
NumberFormat nf = NumberFormat.getPercentInstance();
String widthDep=nf.format(dd);
try
{
PrintStream ps=LogWriter.getPrintStream("../../defaultroot/frame/tuopu.jsp",true);
//图片层
ps.println("<tr align=\"center\">");
ps.println("<td align=center width=100%>");
ps.println("<table align=center border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">");
ps.println("<tr align=center>");
ps.println("<td align=center width="+widthDep+"> </td>");
for(int i=0;i<str.length;i++)
{
ps.println("<td width="+widthDep+" align= center ><img src=\""+str[i][0]+"\"></td>");
}
ps.println("<td align=center width="+widthDep+"> </td>");
ps.println("</tr>");
//标识层
ps.println("<tr align=center>");
ps.println("<td align=center width="+widthDep+"> </td>");
for(int i=0;i<str.length;i++)
{
ps.println("<td width="+widthDep+" align= center ><a href=\"frame.jsp\">"+str[i][1]+"</a></td>");
}
ps.println("<td align=center width="+widthDep+"> </td>");
ps.println("</tr>");
ps.println("<tr align=center>");
ps.println("</tr>");
ps.println("</table>");
ps.println("</td>");
ps.println("</tr>");

System.out.println("Write information to html...");
ps.flush();
ps.close();
}
catch(Exception e){System.out.println("ABC"+e.getMessage());}
}
private void writeHtmlHead() throws Exception
{
//System.out.println("正在写入Html文件");
try{
PrintStream ps = LogWriter.getPrintStream("../../defaultroot/frame/tuopu.jsp",false);
if(ps==null)
{
System.out.println("PrintStream null!!!!!");
}
ps.println("<%@page contentType=\"text/html;charset=gb2312\"%>");
ps.println("<html>");
ps.println("<head>");
ps.println("<title>公司拓朴图");
ps.println("</title>");
ps.println("</head>");
ps.println("<body>");
ps.println("<table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">");
ps.println("<tr align = center>");
ps.println("<td width = 20 colspan = 22> </td>");
ps.println("</tr>");
ps.flush();
ps.close();
}catch(Exception e){throw e;}

}
private void writeHtmlEnd() throws Exception
{
//System.out.println("正完成Html文件的书写");
try{
PrintStream ps = LogWriter.getPrintStream("../../defaultroot/frame/tuopu.jsp",true);
ps.println("</table>");
ps.println("</body>");
ps.println("</html>");
ps.flush();
ps.close();
}catch(Exception e){throw e;}
}
/**找出图中下一层的方法*/
private void nextLevel(String parent[][])
{
this.writeDepToHtml(parent);
//传进来的时候先将本层的信息写入Html文件
int count = 0;
String subdep[][] = null; //下一层的部门信息
for(int i = 0;i<parent.length;i++)
{
String sql = "Select Count(*) Cou From DeptInfo Where RelationDeptID ='"+parent[i][2]+"'";
try{
DataBaseOperator dboperator = new DataBaseOperator();
ResultSet rs = dboperator.executeQuery(sql);
while(rs.next())
{
count+=rs.getInt("Cou");
}
}catch(Exception e){}
}
//System.out.println("本层有"+count+"个子部门");
if(count==0)
{
return;
}
subdep = new String[count][3];
int j = 0;
for(int i = 0;i<parent.length;i++)
{
String sql = "Select ImagePath,DeptName,DeptID From DeptInfo Where RelationDeptID ='"+parent[i][2].trim()+"'";
try{
DataBaseOperator dboperator = new DataBaseOperator();
ResultSet rs = dboperator.executeQuery(sql);
while(rs.next())
{
subdep[j][0] = rs.getString("ImagePath");
subdep[j][1] = rs.getString("DeptName");
subdep[j][2] = rs.getString("DeptID");
//System.out.println(subdep[j][0]+" "+subdep[j][1]+" "+subdep[j][2]+" ");
j++;
}
}catch(Exception e){System.out.println("AA"+e.getMessage());}
}
this.nextLevel(subdep);
System.out.println("Searching next level...");
//return subdep;
}

public static void main(String args[])
{
try{
TuopuCreater tc = new TuopuCreater();
tc.create();
}catch(Exception e){System.out.println(e.getMessage());}
}

}
...全文
28 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
第1篇 开发工具及框架概述  第1章 开发前奏  1.1 java web应用概述  1.2 配置开发环境  1.3 基础技术简单简介  1.4 核心框架初步认识  1.5 小结  第2章 myedipse开发工具对各种框架的支持  2.1 使用jsp的两种模式  2.2 struts框架的实现  2.3 hibernate框架的实现  2.4 jpa框架的实现  2.5 spring框架的实现  2.6 jsf框架的实现  2.7 ajax框架的实现  2.8 使用jdbc连接数据库  2.9 小结  第3章 实现各种框架的集成  3.1 spring框架与其他框架的集成原理  3.2 实现ssh三种框架环境集成    3.3 实现spring与struts 2.x集成  3.4 实现spring、struts2.x和hibernate框架集成  3.5 小结  第2篇 典型模块开发  第4章 在线文本编辑器(fckeditor)  4.1 分析fckeditor在线文本编辑器  4.2 fckeditor在线文本编辑器初级应用  4.3 fckeditor在线文本编辑器常用配置  4.4 fckeditor在线文本编辑器高级应用  4.5 小结  第5章 验证模块(jsp+servlet+jsvaildation)  5.1 表单基础  5.2 客户端表单验证框架  5.3 服务器端验证  5.4 实现图形验证码  5.5 避免重复提交功能  5.6 缩略加水印图像  5.7 小结  第6章 网络硬盘  6.1 网络硬盘功能原理  6.2 网络硬盘功能具体实现——浏览磁盘和显示文件信息  6.3 网络硬盘功能具体实现——操作文件夹和文件  6.4 小结  第7章 网站统计模块(jsp+servlet)  7.1 网站统计模块原理  7.2 实现显示欢迎信息功能,  7.3 指点迷津——cookie知识  7.4 统计访问量功能  7.5 指点迷津——session知识  7.6 统计在线人数功能  7.7 小结  第8章 网络购物车(jsp+servlet+javabean)  8.1 网络购物车原理  8.2 实现网络购物车功能  8.3 小结  第9章 搜索引擎(lucene+web spider)  9.1 关于搜索引擎的基本概念  9.2 网络蜘蛛(web spider)  9.3 下载和分析lucene全文搜索组件  9.4 初步使用lucene全文搜索组件  9.5 新闻搜索引擎具体实现  9.6 小结  第10章 在线网上支付(jsp+servlet+javabean)  10.1 在线网上支付原理  10.2 在线网上支付功能工具类  10.3 发出支付请求过程  10.4 接受支付返回过程  10.5 小结  第11章 javaweb邮件发送系统(jsp+servlet+javabean)  11.1 javaweb邮件发送系统原理  11.2 下载邮件相关jar包  11.3 普通方式电子邮件的发送  11.4 html方式电子邮件的发送  11.5 携带附件电子邮件的发送  11.6 多学两招——关于邮件的基础知识  11.7 小结  第12章 网络留言板(jsp+servlet+javabean)  12.1 网络留言板原理  12.2 添加留言  12.3 浏览留言  12.4 管理留言  12.5 使用dao模式网络留言板  12.6 小结  第13章 网络留言板续——oracle数据库  13.1 连接数据库——idbc驱动程序  13.2 数据库连接池  13.3 commons dbutils组件  13.4 小结  第14章 ajax技术jquary框架的经典应用  14.1 jquery框架的简单应用  14.2 利用jquery框架实现的经典运用  14.3 实现仿google suggest功能  14.4 google suggest功能的相关javascript代码  14.5 小结  第15章 在线文件上传和下载(struts 2.x+fileupload)  15.1 在线文件上传和下载模块原理  15.2 文件上传组件fileupload  15.3 初步使用文件上传组件(components-fileupload)  15.4 单文件的上传  15.5 多文件的上传  15.6 小结  第16章 网上投票系统(struts 2.x+hfreechart)  ]6.1 网上投票系统原理  16.2 图表组件jfreechan  16.3 初步使用图表组件(jfreechad)  16.4 实现网上投票系统  16.5 小结  第17章 商业银行网上账户管理系统(struts 2.x)  17.1 商业银行网上账户管理系统简述  17.2 商业银行网上账户管理系统前期准备  17.3 商业银行网上账户管理系统具体实现——持久层  17.4 商业银行网上账户管理系统具体实现——业务层  17.5 商业银行网上账户管理系统具体实现——表示层  17.6 商业银行网上账户管理系统具体实现——工具类、校验器及拦截器  17.7小结  第18章 hibernate分页系统(hibernate 3.0)  18.1 hibernate分页系统原理  18.2 封装javabean的commons-beanutils组件  18.3 关于hibernate框架中一些通用类  18.4 实现hibernate分页系统前期准备  18.5 关于hibernate分页系统的具体实现  18.6 关于hibernate分页系统的表示层  18.7 多学两招——分页标签  18.8 小结  第19章 生成报表(struts 2.x+hibernate+jxl)  19.1 生成报表原理  19.2 下载jxl组件  19.3 生成报表前期准备  19.4 生成报表具体开发——持久层和服务层  19.5 生成报表具体开发——表示层  19.6 多学两招——其他报表插件  19.7 小结  第20章 数据格式转换(struts 2.x+hibernate+dom4j)  20.1 关于xml文件基础知识  20.2 下载dom4j  20.3 数据格式转换功能前期准备  20.4 数据格式转换功能具体开发  20.5 多学两招——其他操作xml文件组件  20.6 小结  第21章 用户维护功能(struts 2.x+ibatis)  21.1 用户维护功能  21.2 关于用户维护基础知识——ibatis框架  21.3 用户维护系统具体实现  21.4 小结  第22章 用户登录模块(struts 2.x+guice+国际化)  22.1 用户登录概述  22.2 关于用户登录的基础知识——国际化资源  22.3 关于用户登录的基础知识——guice框架  22.4 用户登录的具体实现  22.5 小结  第3篇 项目案例实战  第23章 在线音乐管理系统(ajax+jsp+struts 2.x)  23.1 在线音乐管理系统简述  23.2 在线音乐管理系统前期准备  23.3 在线音乐管理系统具体实现——超级管理员操作  23.4 在线音乐管理系统具体实现——注册用户操作  23.5 小结  第24章 数据汇聚系统(struts 2.x+spring+ibatis)  24.1 数据汇聚系统简述  24.2 数据汇聚系统简述  24.3 关于ibatis框架的一些文件  24.4 数据汇聚系统具体实现  24.5 数据汇聚系统具体实现——表示层  24.6 小结  第25章 投票管理系统(struts 2.x+spring+hibernate)  25.1 投票管理系统简述  25.2 投票管理系统前期准备  25.3 投票管理系统的具体实现——领域模型层  25.4 投票管理系统的具体实现——持久层  25.5 投票管理系统的具体实现——业务层  25.6 关于管理员表示层  25.7 关于创建投票表示层  25.8 关于管理和查找投票表示层  25.9 关于实现投票操作表示层  25.10 小结  第26章 权限管理系统(struts 2.x+spring+jpa)  26.1 权限管理系统简述  26.2 权限管理系统前期准备  26.3 权限管理系统具体实现——关联表操作  26.4 权限管理系统具体实现——模块操作  26.5 权限管理系统具体实现——功能操作  26.6 权限管理系统具体实现——角色操作  26.7 权限管理系统具体实现——用户操作  26.8 小结  第27章 商业银行设备巡检系统(struts 2.x+spring+hibernate)  27.1 商业银行设备巡检系统概述  27.2 商业银行设备巡检系统前期准备  27.3 商业银行设备巡检系统具体实现——系统管理应用  27.4 商业银行设备巡检系统具体实现——设备报修管理  27.5 商业银行设备巡检系统具体实现——设备巡检管理  27.6 多学两招——关于postgresql数据库  27.7 小结  
本资料大全致力于收集一切关于C语言的文章、技巧、教程、源代码和辅助工具软件。适合所有层次的C语言学习者。本资料大全免费下载,如您手头也有C语言相关资料,敬请分享,另外如您对本资料大全有任何建议或者意见希望能告诉我,以便以后继续改进。 请不要做浮躁的人 1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想 出来再参考别人的提示,你就知道自己和别人思路的差异。 2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久 都是只对部分功能熟悉而已,不系统还是不够的。 3.看帮助,不要因为很难而自己是初学者所以就不看;帮助永远是最好的参考手册, 虽然帮助的文字有时候很难看懂,总觉得不够直观。 4.不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。 5.不要放过任何一个看上去很简单的小问题--他们往往并不那么简单,或者可以引伸 出很多知识点;不会举一反三你就永远学不会。 6.知道一点东西,并不能说明你会写脚本,脚本是需要经验积累的。 7.学脚本并不难,JSP、ASP、PHP等等也不过如此--难的是长期坚持实践和不遗余力的博览 群书; 8.看再多的书是学不全脚本的,要多实践 9.把时髦的技术挂在嘴边,还不如把过时的技术记在心里; 10.学习脚本最好的方法之一就是多练习; 11.在任何时刻都不要认为自己手中的书已经足够了; 12.看得懂的书,请仔细看;看不懂的书,请硬着头皮看; 13.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍; 14.请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件; 15.把在书中看到的有意义的例子扩充;并将其切实的运用到自己的工作中; 16.不要漏掉书中任何一个练习——请全部做完并记录下思路; 17.当你用脚本到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余 下的部分粗略的完成以保证这个代码的完整性,然后分析自己的错误并重新编写和工 作。 18.别心急,写脚本确实不容易;水平是在不断的实践中完善和发展的; 19.每学到一个脚本难点的时候,尝试着对别人讲解这个知识点并让他理解----你能 讲清楚才说明你真的理解了; 20.记录下在和别人交流时发现的自己忽视或不理解的知识点; 21.保存好你做过的所有的源文件----那是你最好的积累之一; 22.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先 你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就 能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒! 23,到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问 题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己 的帖子没人回的。 24,虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方, 如果你总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的 才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你 讨论呢。 能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒! 23,到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问 题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己 的帖子没人回的。 24,虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方, 如果你总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的 才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你 讨论呢。 浮躁的人容易问:我到底该学什么;----别问,学就对了; 浮躁的人容易问:JS有钱途吗;----建议你去抢银行; 浮躁的人容易说:我要中文版!我英文不行!----不行?学呀! 浮躁的人分两种:只观望而不学的人;只学而不坚持的人; 浮躁的人永远不是一个高手。

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧