<html>
<%@ page language="java" import="javazoom.upload.*" import="java.util.*" pageEncoding="gb2312"%>
<%@ page errorPage="ExceptionHandler.jsp" %>
<jsp:useBean id="upBean" scope="page" class="javazoom.upload.UploadBean" >
<jsp:setProperty name="upBean" property="folderstore" value="F:\workspace\upload" />
</jsp:useBean><head>
<title>文件上传</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<ul class="style1">
<%
      if (MultipartFormDataRequest.isMultipartFormData(request))
      {
         // Uses MultipartFormDataRequest to parse the HTTP request.
         MultipartFormDataRequest mrequest = new MultipartFormDataRequest(request);
         String todo = null;
         if (mrequest != null) todo = mrequest.getParameter("todo");
     if ( (todo != null) && (todo.equalsIgnoreCase("upload")) )
     {
                Hashtable files = mrequest.getFiles();
                if ( (files != null) && (!files.isEmpty()) )
                {
                    UploadFile file = (UploadFile) files.get("uploadfile");
                    
                    if (file != null) out.println("<li>Form field : 上传文件"+"<BR> 文件名 : "+file.getFileName()+" ("+file.getFileSize()+" bytes)"+"<BR> 文件类型 : "+file.getContentType());
                    // Uses the bean now to store specified by jsp:setProperty at the top.
                    upBean.store(mrequest, "uploadfile");
                    String name=file.getFileName();
                    session.setAttribute("name",name);
                }
                else
                {
                  out.println("<li>No uploaded files");
                }
     }
         else out.println("<BR> todo="+todo);
      }
      
%>
</ul>
<form method="get" action="jiexi" name="upform" enctype="multipart/form-data">  <table width="60%" border="0" cellspacing="1" cellpadding="1" align="center" class="style1">
    <tr>
      <td align="left"><b>选择您要上传的文件 :</b></td>
    </tr>
    <tr>
      <td align="left">
        <input type="file" name="uploadfile" size="50">
        </td>
    </tr>
    <tr>
      <td align="left">
<input type="hidden" name="todo" value="upload">
        <input type="submit" name="Submit" value="上传">
        <input type="reset" name="Reset" value="取消">
        </td>
    </tr>
  </table></body>
</html>
通过该jsp页面上传一个xml文件。。
然后通过servlet解析并在当前页面显示

servlet
 import   java.io.*;   
  import   java.util.*;   
  import org.jdom.Document;
  import org.jdom.Element;
  import org.jdom.input.SAXBuilder;
  import javax.servlet.*;
  import javax.servlet.http.*;
    
    
      public   class jiexi extends HttpServlet   {   
                protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
                 String name=request.getParameter("name");
                 response.setContentType("html/text");
                 PrintWriter writer=response.getWriter();
          try   {   
                SAXBuilder   saxb   =   new   SAXBuilder();   
                Document   doc   =   saxb.build(new   FileInputStream(name));   
                Element   root   =   doc.getRootElement(); 
                int   biaoqianshu   =   root.getChildren().size();   
                List   elements   =   root.getChildren();   
                Element   firstElement;   
                StringBuffer   sb   =   new   StringBuffer();     
                for   (int   i   =   0;   i   <   biaoqianshu;   i++)   {   
                    firstElement   =(Element)elements.get(i);    
                    int   zibiaoqian   =   firstElement.getChildren().size();   
                    StringBuffer   value   =   new   StringBuffer();   
                    Element   secondElement;     
                    for   (int   j   =   0;   j   <   zibiaoqian;   j++)   {   
                        secondElement   =   (Element)firstElement.getChildren().get(j);   
                        writer.println(secondElement.getName()+":");  //输出标签 
                        writer.println(secondElement.getText());  //输出标签内容 
                    }    
                    writer.print(sb.toString()+value.toString());   
                    sb.delete(0,sb.length());   
                    value.delete(0,value.length());   
            }   
          }  
          catch   (Exception   ex)   {   
              ex.printStackTrace();   
           
          }
      }   
      } 
结果运行时提示错误
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet execution threw an exception
root cause java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder
jiexi.doGet(jiexi.java:18)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs.

解决方案 »

  1.   

    jdom 使用的时候要用配套的jar包  也就是下载jdom时附带的哪几个
      

  2.   

    恩,jar包不齐,把jdom项目中lib下的jar选择性的加上
      

  3.   

    不明白你为什么会想到用sax方式解析xml,找到你缺少的jar包加到工程下,就可以了。楼上的没错
      

  4.   

    把jdom.jar拷贝到你的web项目的web-inf/lib下
      

  5.   

    java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder 
    没有找到这个.jar文件..你导入..