解析web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app> <!--登录请求 --> <servlet> <servlet-name>loginservlet</servlet-name> <servlet-class>com.fix.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>loginservlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <!--注册请求 --> <servlet> <servlet-name>zhuceservlet</servlet-name> <servlet-class>com.fix.servlet.ZhuceServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>zhuceservlet</servlet-name> <url-pattern>/zhuce</url-pattern> </servlet-mapping> </web-app>
package com.fix; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * xml 信息读取到 map里 * * @author Administrator * */ public class XmlParse { private Map<String, String> servlets = new HashMap<String, String>(); private Map<String, String> mappings = new HashMap<String, String>(); public XmlParse() { SAXReader reader = new SAXReader(); try { Document doc = reader.read("web.xml"); List<Element> list = doc.selectNodes("/web-app/servlet"); for (Element servlet : list) { Element sname = servlet.element("servlet-name"); Element sclass = servlet.element("servlet-class"); servlets.put(sname.getText(), sclass.getText()); } List<Element> list1 = doc.selectNodes("/web-app/servlet-mapping"); for (Element servlet : list1) { Element sname = servlet.element("servlet-name"); Element url = servlet.element("url-pattern"); mappings.put(url.getText(), sname.getText()); } } catch (DocumentException e) { e.printStackTrace(); } } /** * 通过 url 找到 类名 * * @param url * @return */ public String getClassByUrl(String url) { String cname = null; String sname = mappings.get(url); cname = servlets.get(sname); return cname; } public static void main(String[] args) { XmlParse xml= new XmlParse(); String ok=xml.getClassByUrl("/login"); System.out.println(ok); } }
package com.fix; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class ReadXmlPath { /** * @param args */ public static void main(String[] args) { SAXReader reader=new SAXReader(); try { Document doc= reader.read("web.xml"); List<Element> list=doc.selectNodes("/web-app/servlet"); for (Element element : list) { System.out.println(element.getName()+"--"+element.getText()); } } catch (DocumentException e) { e.printStackTrace(); } } }
package com.fix; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class ReadXml { /** * @param args */ public static void main(String[] args) { Map<String, String> servlets=new HashMap<String, String>(); Map<String, String> mappings=new HashMap<String, String>(); SAXReader reader=new SAXReader(); try { Document doc= reader.read("web.xml"); //读文件 Element root= doc.getRootElement(); //根 List<Element> list=root.elements("servlet"); //返回所有孩子 for (Element servlet : list) { Element sname= servlet.element("servlet-name"); Element sclass= servlet.element("servlet-class"); servlets.put(sname.getText(), sclass.getText()); } } catch (DocumentException e) { e.printStackTrace(); } System.out.println(servlets); } }
package com.fix; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class CreateXml { /** * @param args */ public static void main(String[] args) { DbUtil db=new DbUtil(); String sql="select giftid,giftname,icon from zone_gift"; ArrayList<Object[]> list=db.executeNewQuery(sql, null); Document doc=DocumentHelper.createDocument(); //文件 Element root= doc.addElement("Gifts"); //根 for (Object[] sz : list) { String id=sz[0].toString(); String name=sz[1].toString(); String icon=sz[2].toString(); Element gift=root.addElement("gift"); //根下的孩子 gift.addAttribute("gid", id); Element gname=gift.addElement("name"); Element gicon=gift.addElement("icon"); gname.setText(name); gicon.setText(icon); } //存盘 OutputFormat format=OutputFormat.createPrettyPrint(); format.setEncoding("gbk"); FileWriter fw; try { fw = new FileWriter("test.xml"); XMLWriter xml=new XMLWriter(fw,format); //不加后面参数,乱码 xml.write(doc); xml.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
package com.fix; import java.lang.reflect.Method; import java.sql.*; import java.util.*; public class DbUtil { private Connection con; private PreparedStatement pt; private ResultSet rs; private void getConn() { try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager .getConnection("jdbc:mysql://localhost:3306/qzone?user=root&password=root"); } catch (Exception e) { e.printStackTrace(); } } /** * 返回单个值 * ---可执行类似这种语句: select count(*) from students where sex='男' select stname from students where stid=10 * @param sql * @param sz * @return */ public Object executeSelectOne(String sql, Object sz[]) { Object obj = null; getConn(); try { pt = con.prepareStatement(sql); // 语句 for (int i = 0; sz != null && i < sz.length; i++) { pt.setObject(i + 1, sz[i]); } rs = pt.executeQuery(); if (rs.next()) { obj = rs.getObject(1); } } catch (Exception e) { e.printStackTrace(); } finally { this.closeAll(); } return obj; } /** * 可以执行所有 insert update delete 语句 * 如 String sql="insert into student values(?,?)"; Object sz[]={"张三","123123"}; 用来代替上面的? xxx.executeUpdate(sql,sz); * **/ public int executeUpdate(String sql, Object sz[]) { int n = 0; getConn(); try { pt = con.prepareStatement(sql); // 语句 for (int i = 0; sz != null && i < sz.length; i++) { pt.setObject(i + 1, sz[i]); } n = pt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { this.closeAll(); } return n; } /** * 可以执行 select 语句 * 如 String sql="select * from students; xxx.executeQuery(sql,null); * **/ public ResultSet executeQuery(String sql, Object sz[]) { getConn(); try { pt = con.prepareStatement(sql); // 语句 for (int i = 0; sz != null && i < sz.length; i++) { pt.setObject(i + 1, sz[i]); } rs = pt.executeQuery(); } catch (Exception e) { e.printStackTrace(); } return rs; } /** * 可以执行 select 语句 * 如 String sql="select * from students; xxx.executeNewQuery(sql,null); * 返回 list 集合 ,里面是数组 **/ public ArrayList executeNewQuery(String sql, Object sz[]) { getConn(); ArrayList datas = new ArrayList(); try { pt = con.prepareStatement(sql); // 语句 for (int i = 0; sz != null && i < sz.length; i++) { pt.setObject(i + 1, sz[i]); } rs = pt.executeQuery(); // 结果集的列 int n = rs.getMetaData().getColumnCount(); while (rs.next()) { Object[] hang = new Object[n]; // 行数组 for (int i = 1; i <= n; i++) { hang[i - 1] = rs.getObject(i); } datas.add(hang); } } catch (Exception e) { e.printStackTrace(); } finally { this.closeAll(); // 数据库关闭 } return datas; } /** * 返回装了实体的集合 * @param sql 语句 * @param sz ?的值 * @param beanName 类名 * @return */ /** * 可以执行 select 语句 * 如 String sql="select * from students; xxx.executeQuery(sql,null,"entity.Student"); //最后一个参数是放 包名.类名 * 返回 list 集合 ,里面是 Student对象 **/ public List executeQuery(String sql, Object sz[], String beanName) { this.getConn(); List list = new ArrayList(); try { Class obj = Class.forName(beanName); Method[] ms = obj.getMethods(); // 反射出所有的方法 pt = con.prepareStatement(sql); if (sz != null) { for (int i = 0; i < sz.length; i++) { pt.setObject(i + 1, sz[i]); } } rs = pt.executeQuery(); // 执行select 得到结果集 int endcols = rs.getMetaData().getColumnCount(); // 得到列数 while (rs.next()) { Object beanObj = obj.newInstance(); // 一行生成一个对象 // 循环取出所有列的列名 for (int cols = 1; cols <= endcols; cols++) { // 得到一列的列名 stuId String columName = rs.getMetaData().getColumnName(cols); Object value = rs.getObject(columName); // 取出数据库中的一个字段 if(value==null) continue; String c = columName.substring(0, 1); // 切下第一个字母s String e = columName.substring(1); // 余下的tuId // 组合成一个 setStuId String setColumName = "set" + c.toUpperCase() + e; //System.out.println("调用"+setColumName+"值为"+value); for (int i = 0; i < ms.length; i++) { if (ms[i].getName().equals(setColumName)) { // 相当于执行 xxx.setStuId(10); ms[i].invoke(beanObj, value); break; } } } list.add(beanObj); } } catch (Exception e1) { e1.printStackTrace(); } finally { this.closeAll(); } return list; } public void closeAll() { try { if (rs != null) { rs.close(); } if (pt != null) { pt.close(); } if (con != null) { con.close(); } } catch (Exception e) { e.printStackTrace(); } } }