解析web.xml文件
来源:互联网 发布:腾讯数据分析 编辑:程序博客网 时间:2024/06/06 04:14
解析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(); } }}
分类: JavaEE
好文要顶关注我 收藏该文
0
0
«上一篇:正则表达式
»下一篇:仿照tomcat服务器
»下一篇:仿照tomcat服务器
posted @ 2012-10-20 18:33 邹晟 阅读(680) 评论(0)编辑 收藏
0 0
- web.xml文件解析
- 解析web.xml文件
- web.xml文件详细解析
- Web.xml文件 - 工程初始化配置文件解析
- Web项目中解析XML文件
- tomcat源码解析(二)--web.xml文件的解析
- Java读取WEB-INF下XML文件并进行解析
- JAVA Web 开发之DOM和SAX解析XML文件
- MVC servlet 目录上下文更改 部署文件(web.xml解析)
- 部署描述文件web.xml解析(一)总述
- 部署描述文件web.xml解析(二) Servlet生命周期
- java-web 之 第二讲 -- dom4j 解析 XML 文件
- Java web留言板项目part2:xml文件解析详解
- Java读取WEB-INF下XML文件并进行解析
- 部署描述文件web.xml解析(三) 默认主页
- 部署描述文件web.xml解析(五) 声明过滤器
- 部署描述文件web.xml解析(六) 配置应用程序监听器
- web.xml配置解析
- ORACLE 常见等待事件
- CUDA-GPU programming Introduction (5)
- 常见的网站服务器架构有哪些?
- Unity 游戏用XLua的HotFix实现热更原理揭秘
- [Updating] Tinkoff Challenge
- 解析web.xml文件
- android基础(ANR)
- 信息安全工程师 学习笔记(二十)
- 在Express 使用session 做登录控制
- gcov获取程序频谱信息的步骤
- TensorFlow学习(二):变量常量类型
- 从源码角度分析RecyclerView监听滑动到底部失效
- 第一次练手。
- 如何从chrome浏览器获取Xpath