当前位置:  编程技术>java/j2ee

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

    来源: 互联网  发布时间:2014-10-14

    本文导语:  本例子是参考了一些网站上有关JSP 对 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代码)

代码:


oddWorld 餐饮系统





  
     
      
       餐饮系统登录 
      
    
  
  

  

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

              
                 
                 
                   
                    
                  
                   
                   
                    
                  
                   
                
                 
              
              

            
        
      
    
  




     




说明:把用户名称和用户密码提交到/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    

代码:






 








        
         
          
        
         
          
        
        
         
      
    
    
     
      
      

      
       
        
      
      
       
    
    
    
     
      
        
         
          
        
         
          
        
         
          
        
        
         
      
    
    
     
  
  

  
     
     
       

        
          
             
              
              
              
              
              
              
               
            
              
            
          
        
      
    
  
  

 








说明:本文件的书写有很多地方并不简练,因为在程式的开发过程中,过分简练的程序往往会带来后期维护的困难。

开发心得:

doc.getElementsByTagName("restaurants").item(int i)的返回值是node 型,如果不是要调用它的属性值,没有必要强制转型为 Element型。可以直接操作。本系统因为开发的参考资料的错误,所以全都采用了强制转型。可以在以后的开发中考虑使用node 直接进行操作。

trim() 和 Interger.parseInt() 函数都不可以接受null 型的数值

在tomcat 下左右的文件都是目录从TOMCAT 算起,具体情况请参见webappscanyinjspuserjudge.jsp 里关于xml 路径的写法。


对原代码感兴趣的朋友请通过如下信箱和我联系,joard@163.com


    
 
 

您可能感兴趣的文章:

  • 两个简单问题:在javaBean中能用out.println()输出页面吗?javaBean中可以使用servlet建立的session对象变量值吗?
  • jsp中使用javaBean,javaBean的位置应放在。。
  • Jsp可否使用带有GUI的JavaBean,如何使用?
  • JavaBean如何在Application中使用?(可以吗),难道只能在jsp中使用?
  • javabean的使用问题
  • 请指教用TOMCAT服务器,使用JAVABEAN,.class文件应该放在哪里?
  • 请问Tomcat下使用javabean,类文件放在哪个目录下,急!!!
  • 请教各位:javabean被使用后需要清除吗?
  • javabean使用的一个菜鸟问题!
  • 关于javabean的使用,奇怪?
  • jswdk使用javabean的类文件放在哪个目录下?
  • 怎样才能在jsp页面中使用可视的JavaBean?
  • 自己编写的javabean ,可以用import导入使用么?
  • 大家好,你们编写JavaBean时通常使用什么工具,用什么要方便点?
  • 在JSP中调用JAVA类和使用JAVABEAN有什么区别?
  • 如何很好的使jsp javabean servlet配合起来使用呢?
  • 请问使用javabean执行sql之后如何抓住catch ?
  • 谁能给讲讲<jsp:setProperty...>和<jsp:setProperty...>和使用javaBean啊?
  • 使用JavaBean创建您的网上日历本(1)
  • 在JSP中使用JAVABEAN时遇到的错误,谢谢
  • 哪位高手可以提供使用C/C++编CGI程序中,使用和设置Cookie的例子。为谢!!!
  • 谁有使用sharetop的webchart的JSP例子呀
  • 100分求java +VC6.0使用JNI的最简单例子
  • sql server 使用ntile获取数据的例子
  • 请问sun的jwsdk的例子中jsp为什么不能使用?
  • 求glib2的使用例子
  • 恳求一个使用frame的JSP例子程序
  • 在borland下载的30天j2ee试用版,它的sample例子怎么不好使用!
  • 哪位有信号量和共享内存同时使用的例子??高分
  • 请问网上何处有关于JUnit的使用例子程序?
  • 需要一个完整的使用jakarta的digester的例子(很简单的也行)。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在linux下使用C开发,需要使用什么样的开发环境呀?
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • 我想在linux下开发软件,但不知道使用什么语言好,和使用什么开发工具
  • 我常未开发过Linux下的程序,请问Linux下可以使用那些开发工具,最好的开发工具是什么版本?
  • 请教个开发大项目中 使用开发工具的问题
  • 使用Motif开发Solaris上的开发,如何创建一个不带标题栏的窗口,就像启动画面一样?
  • Qt只能在KDE桌面开发吗?能不能在Gnome上开发使用?
  • 想搞嵌入式驱动的开发,请大虾给个简单例程(通过SPI读写外扩存储芯片),以及开发步骤及应注意的地方,怎么加入内核和使用该驱动?谢谢
  • 请问大家在Linux开发C/C++使用什么开发环境最好?
  • 大家在UNIX下都使用什么数据库?使用什么做数据开发?
  • vc编写dll动态连接库(编译过的)能在unix上开发使用吗?
  • 各位在Unix下开发,使用哪种c++编译器?
  • 开发java使用什么工具较好 iis7站长之家
  • 开发java使用什么工具较好
  • 怎么Linux开发版里尽是些安装使用的问题?
  • 如何使用S3C6410开发板上的串口3和4
  • 如何在Solaris下使用GTK开发中文界面
  • 开发平台gdbserver的使用
  • 使用mini2440开发板,Linux系统,录音保存WAV格式,录音61秒,在PC机使用千千静听播放,只有10秒??
  • 使用 Lua 来开发 iOS 应用 Wax for iOS
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • Office 2010 Module模式下使用VBA Addressof
  • c#中SAPI使用总结——SpVoice的使用方法
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • 使用了QWidget的程序,如何使用后台程序启动它?
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3