使用JSP + JAVABEAN + XML 开发的一个例子

本例子是参考了一些网站上有关JSP 对 XML 的操作的相关文档,又结合了一些个人的体会。例子涉及的内容是,开发的一个企业内部定餐系统后台管理端的部分代码,功能主要集中在对于餐馆基本信息的管理。 该例子本身开发的起因是我在原公司和同事们一个玩笑的一部分。特此也表达对那些一起共事的朋友们的想念。 例子本身是在TOMCAT4.01 平台下运行的B/S结构的程式。有关TOMCAT 的配置,这里不做说明。只讲解一下相关文件及文件夹的目录结构。 目录结构说明: /tomcat/webapps/canyin/ -----主目录 /tomcat/webapps/canyin/jsp/ -----JSP 文件目录 /tomcat/webapps/canyin/jsp/admin/ -----实现后台管理的JSP 文件的存放目录 /tomcat/webapps/canyin/WEB-INF/classes/canyin/ ------javabean 文件的存放目录 /tomcat/webapps/canyin/data/ -----xml 文件存放目录 /tomcat/webapps/ROOT/ -----tomcat 启动文件存放文件夹,只存放了index.html 文件 文件简单说明: /tomcat/webapps/canyin/data/users.xml -----记录用户信息 /tomcat/webapps/canyin/data/restaurants.xml -----记录餐馆的基础信息 /tomcat/webapps/ROOT/index.html -----首页,页面出现输入框,要求用户输入用户名,密码 /tomcat/webapps/canyin/jsp/loginjudge.jsp -----用户身份判断页面,根据用户名称和密码决定页面是转入后台管理端,还是前台客户端。本例子中,用户身份一旦确认为有管理权限,可以进入后台管理端,就直接跳到餐馆基本信息管理页面,简化说明的流程。 /tomcat/webapps/canyin/jsp/admin/admin_rest.jsp -----餐馆基本信息管理页面,管理餐馆的名称,电话,地址等信息 /tomcat/webapps/canyin/WEB-INF/classes/canyin/checkSessionBean.class ----- 后台管理端检测标志用户身份的session 的值,如果不是管理员的话,跳回登陆页面。 /tomcat/webapps/canyin/WEB-INF/classes/canyin/connXmlBean.class -----连接xml 文件 /tomcat/webapps/canyin/WEB-INF/classes/canyin/writeXmlBean.class -----写入xml文件 文件详细介绍及附带代码说明。 /tomcat/webapps/canyin/data/users.xml 代码: - 说明:字段含义是用户名,密码以及用户的身份 /tomcat/webapps/canyin/data/restaurants.xml 代码: - - 上海亭快餐店 021-76546726
百老汇广场B座
- 香格里拉大饭店 021-2312134
南京路1023号
说明: 属性是记录在restaurants.xml 文件中总共有过多少条记录,每新增一条,无论以后删除是否,该值都会增加1,就好象数据库中习惯使用的自动增加1的id 项。用来给新增的 的属性 赋一个唯一的值。其它的字段意思比较明显。 /tomcat/webapps/ROOT/index.html (单纯的HTML代码) 代码:
餐饮系统登录


餐饮系统登录
登录名:
密码:

   

<script language=javascript> </script>说明:把用户名称和用户密码提交到/tomcat/webapps/canyin/jsp/loginjudge.jsp /tomcat/webapps/canyin/WEB-INF/classes/canyin/checkSessionBean.class (代码是相应的java 文件) package canyin; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpServletRequest; public class checkSessionBean { private boolean bolCheckPass=false; private HttpServletRequest request = null; public boolean checkSessionBean(HttpServletRequest request,String strSessionName,String strCheckValue){ public boolean checkSessionBean(HttpServletRequest request){ HttpSession session = request.getSession(false); return(bolCheckPass); if (strSessionName==null || strCheckValue==null){ return(bolCheckPass); }else{ if (session!=null && session.getValue(strSessionName)!=null){ bolCheckPass=session.getValue(strSessionName).equals(strCheckValue); } return(bolCheckPass); } } } 说明:检验参数传入的session 名称的数值和参数传入的字段的数值是否相等。 /tomcat/webapps/canyin/WEB-INF/classes/canyin/connXmlBean.class 代码: package canyin; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.*; public class connXmlBean { private DocumentBuilderFactory factory=null; private DocumentBuilder builder=null; private Document doc=null; public connXmlBean(){} public String connXml(String xmlFileName){ String strExc=""; try{ factory = DocumentBuilderFactory.newInstance(); builder=factory.newDocumentBuilder(); doc=builder.parse(xmlFileName); doc.normalize(); }catch(Exception e){ strExc=e.toString(); } return(strExc); } public Document getXmlDoc(){ return(doc); } } 说明:打开一个指定xml 文件 /tomcat/webapps/canyin/WEB-INF/classes/canyin/writeXmlBean.class 代码: package canyin; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.File; import org.w3c.dom.*; public class writeXmlBean { public writeXmlBean(){} public String writeXml(Document doc,String xmlFileName){ String strExc=""; try{ TransformerFactory tfactory = TransformerFactory.newInstance(); Transformer transformer = tfactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File(xmlFileName)); transformer.transform(source,result); }catch(Exception e){ strExc=e.toString(); } return(strExc); } } 说明:写入dom 的内容到一个指定的xml 文件。 /tomcat/webapps/canyin/jsp/loginjudge.jsp 代码: 说明:....... /tomcat/webapps/canyin/jsp/admin/admin_rest.jsp 代码: href="../../include/itsp.css" type="text/css" rel="stylesheet" />
餐饮系统管理--餐馆管理[ 退出系统 ]


 餐馆名称餐馆电话
餐馆地址
修改
删除
"> " maxlength="40" > " maxlength="20" > " maxlength="100" >  
">'';}" src="../../images/delete.gif" style="CURSOR: hand" width=15>
   


 

<script LANGUAGE=javascript> </script>说明:本文件的书写有很多地方并不简练,因为在程式的开发过程中,过分简练的程序往往会带来后期维护的困难。 开发心得: doc.getElementsByTagName("restaurants").item(int i)的返回值是node 型,如果不是要调用它的属性值,没有必要强制转型为 Element型。可以直接操作。本系统因为开发的参考资料的错误,所以全都采用了强制转型。可以在以后的开发中考虑使用node 直接进行操作。 trim() 和 Interger.parseInt() 函数都不可以接受null 型的数值 在tomcat 下左右的文件都是目录从TOMCAT 算起,具体情况请参见/webapps/canyin/jsp/userjudge.jsp 里关于xml 路径的写法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值