首先是个xml文件
xml 代码
- xml version='1.0' encoding='utf-8'?>
- <书库>
- <书>
- <书名>Java编程入门书名>
- <作者>张三作者>
- <出版社>电子出版社出版社>
- <价格>35.0价格>
- <出版日期>2002-10-07出版日期>
- 书>
- <书>
- <书名>XML在Java中的应用书名>
- <作者>李四作者>
- <出版社>希望出版社出版社>
- <价格>92.0价格>
- <出版日期>2002-10-07出版日期>
- 书>
- 书库>
接下来是类
java 代码
- package jdom.test;
- public class Book
- {
- private String bookname, author, pub, price, pubdate;
- public Book(){}
- public Book(String bookname, String author, String pub, String price, String pubdate)
- {
- this.bookname = bookname;
- this.author = author;
- this.pub = pub;
- this.price = price;
- this.pubdate = pubdate;
- }
- public String getAuthor()
- {
- return author;
- }
- public void setAuthor(String author)
- {
- this.author = author;
- }
- public String getBookname()
- {
- return bookname;
- }
- public void setBookname(String bookname)
- {
- this.bookname = bookname;
- }
- public String getPrice()
- {
- return price;
- }
- public void setPrice(String price)
- {
- this.price = price;
- }
- public String getPub()
- {
- return pub;
- }
- public void setPub(String pub)
- {
- this.pub = pub;
- }
- public String getPubdate()
- {
- return pubdate;
- }
- public void setPubdate(String pubdate)
- {
- this.pubdate = pubdate;
- }
- }
然后是对这个类访问
java 代码
- package jdom.test;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.List;
- import java.util.Vector;
- import org.jdom.Document;
- import org.jdom.Element;
- import org.jdom.JDOMException;
- import org.jdom.input.SAXBuilder;
- import org.jdom.output.Format;
- import org.jdom.output.XMLOutputter;
- public class XmlBean
- {
- Document doc;
- Book book;
- public XmlBean(String path, Book book)
- {
- getDocument(path);
- this.book = book;
- }
- public XmlBean(String path)
- {
- getDocument(path);
- book = new Book();
- }
- /**
- * 读取XML文件所有信息
- * @return Vector<book></book>
- */
- public Vector<book></book> LoadXML()
- {
- List books = getList();
- Vector<book></book> vector = new Vector<book></book>();
- for (int i = 0; i < books.size(); i++)
- {
- Book book = new Book();
- Element element = (Element) books.get(i);
- book.setBookname(element.getChild("书名").getText());
- book.setAuthor(element.getChild("作者").getText());
- book.setPub(element.getChild("出版社").getText());
- book.setPrice(element.getChild("价格").getText());
- book.setPubdate(element.getChild("出版日期").getText());
- vector.add(book);
- }
- return vector;
- }
- /**
- * 删除XML文件指定信息
- * @param request
- */
- public void delXML(String path, int index)
- {
- List books = getList();
- books.remove(index);
- docToFile(path);
- }
- /**
- * 向XML文件添加信息
- * @param path
- */
- public void addXML(String path)
- {
- List<element></element> books = getList();
- Element newbook = new Element("书");
- Element newname = new Element("书名");
- newname.setText(book.getBookname());
- newbook.addContent(newname);
- Element newauthor = new Element("作者");
- newauthor.setText(book.getAuthor());
- newbook.addContent(newauthor);
- Element newpub = new Element("出版社");
- newpub.setText(book.getPub());
- newbook.addContent(newpub);
- Element newprice = new Element("价格");
- newprice.setText(book.getPrice());
- newbook.addContent(newprice);
- Element newdate = new Element("出版日期");
- newdate.setText(book.getPubdate());
- newbook.addContent(newdate);
- books.add(newbook);
- docToFile(path);
- }
- /**
- * 修改XML文件指定信息
- * @param request
- */
- public void editXML(String path, int index)
- {
- List books = getList();
- Element element = (Element) books.get(index);
- Element newname = element.getChild("书名");
- newname.setText(book.getBookname());
- Element newauthor = element.getChild("作者");
- newauthor.setText(book.getAuthor());
- Element newpub = element.getChild("出版社");
- newpub.setText(book.getPub());
- Element newprice = element.getChild("价格");
- newprice.setText(book.getPrice());
- Element newdate = element.getChild("出版日期");
- newdate.setText(book.getPubdate());
- docToFile(path);
- }
- /**
- * 写入文件
- * @param path
- */
- void docToFile(String path)
- {
- Format format = Format.getPrettyFormat();
- format.setIndent("");
- format.setEncoding("utf-8");
- XMLOutputter outp = new XMLOutputter(format);
- FileOutputStream fo = null;
- try
- {
- fo = new FileOutputStream(path);
- outp.output(doc, fo);
- }
- catch (FileNotFoundException e)
- {
- e.printStackTrace();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- finally
- {
- close(fo);
- }
- }
- /**
- *
- * @param path
- */
- void getDocument(String path)
- {
- FileInputStream fi = null;
- try
- {
- fi = new FileInputStream(path);
- SAXBuilder sb = new SAXBuilder();
- doc = sb.build(fi);
- }
- catch (FileNotFoundException e)
- {
- e.printStackTrace();
- }
- catch (JDOMException e)
- {
- e.printStackTrace();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- finally
- {
- close(fi);
- }
- }
- /**
- * 得到根元素所有子元素的集合
- * @param path
- * @return
- */
- List<element></element> getList()
- {
- Element root = doc.getRootElement();
- List<element></element> list = root.getChildren();
- return list;
- }
- void close(FileInputStream fi)
- {
- if (fi != null)
- {
- try
- {
- fi.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- fi = null;
- }
- }
- void close(FileOutputStream fo)
- {
- if (fo != null)
- {
- try
- {
- fo.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- fo = null;
- }
- }
- }
再来分别是servlet和filter
java 代码
- package servlet;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import jdom.test.Book;
- import jdom.test.XmlBean;
- public class XmlServlet extends HttpServlet
- {
- private static final long serialVersionUID = 1L;
- public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
- {
- doPost(request, response);
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
- {
- PrintWriter out = response.getWriter();
- String result = "";
- String act = request.getParameter("act");
- String path = request.getParameter("path");
- if ("add".equals(act))
- {
- String bookname = request.getParameter("bookname");
- String author = request.getParameter("author");
- String pub = request.getParameter("pub");
- String price = request.getParameter("price");
- String pubdate = request.getParameter("pubdate");
- Book book = new Book(bookname, author, pub, price, pubdate);
- XmlBean xb = new XmlBean(path, book);
- xb.addXML(path);
- result = "添加成功";
- }
- else if ("del".equals(act))
- {
- int id = Integer.parseInt(request.getParameter("id"));
- XmlBean xb = new XmlBean(path);
- xb.delXML(path, id);
- result = "删除成功";
- }
- else if ("edit".equals(act))
- {
- int id = Integer.parseInt(request.getParameter("id"));
- String bookname = request.getParameter("bookname");
- String author = request.getParameter("author");
- String pub = request.getParameter("pub");
- String price = request.getParameter("price");
- String pubdate = request.getParameter("pubdate");
- Book book = new Book(bookname, author, pub, price, pubdate);
- XmlBean xb = new XmlBean(path, book);
- xb.editXML(path, id);
- result = "修改成功";
- }
- else
- {
- result = "非法操作";
- }
- out.print("
" + result + "
返回"); - }
- }
java 代码
- package filter;
- import java.io.IOException;
- import javax.servlet.Filter;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- public class CharsetFilter implements Filter
- {
- public void destroy()
- {}
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
- {
- request.setCharacterEncoding("GBK");
- response.setCharacterEncoding("GBK");
- chain.doFilter(request, response);
- }
- public void init(FilterConfig arg0) throws ServletException
- {}
- }