`
haoran_10
  • 浏览: 443289 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ajax、jsp、dom4j

    博客分类:
  • java
阅读更多

这篇文章跟上一篇,做了一些大的改动,主要是xml创建改用dom4j,用反射知识支持更多的javaBean

ok,不再废话,上代码

 

  • 1.js代码不同之处:

 

原代码:var stuList = stuDom.getElementsByTagName("student");

 

修改之后为:var stuList = stuDom.getElementsByTagName("childNode");

 

  •  2.servlet代码:
  • public class InfoServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		//------------------通用方法使用dom4j框架--------------------------------------
    		response.setCharacterEncoding("utf-8");
    		response.setContentType("application/xml");
    		PrintWriter out = response.getWriter();
    		List<Student>list = new QueryStu().getStu();
    		WriteXmlUtil.write(out,list,"bean.Student");
    	}
    
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doGet(request, response);
    	}
    
    }
    
     
  • 3.WriteXmlUtil类,这个是修改的关键之处
  • package xmlUtil;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.XMLWriter;
    
    public class WriteXmlUtil {
    
    	public static <T> void write(PrintWriter out, List<T> list, String beanName) {
    		// -----------取得beanName的get方法--------------------------
    		Class<?> clazz = null;
    		try {
    			clazz = Class.forName(beanName);
    		} catch (ClassNotFoundException e1) {
    			e1.printStackTrace();
    		}
    		Method methods[] = clazz.getMethods();
    		List<Method> mGetList = new ArrayList<Method>();// javaBean类的全部get方法
    		for (int i = 0; i < methods.length; i++) {
    			int flag = methods[i].getName().indexOf("get");
    			if (flag != -1) {
    				mGetList.add(methods[i]);
    			}
    		}
    		mGetList.remove(mGetList.size() - 1);// 去掉getClass()方法
    		// ---------------------------------------------
    
    		Document document = DocumentHelper.createDocument();
    		Element root = DocumentHelper.createElement("root");
    		document.setRootElement(root);// 设为根节点
    		for (int i = 0; i < list.size(); i++) {
    			Element ele = root.addElement("childNode");// 子节点
    			for (int j = 0; j < mGetList.size(); j++) {
    				Object obj = list.get(i);
    				Element id = ele.addElement(mGetList.get(j).getName());
    				try {
    					Object value = mGetList.get(j).invoke(obj);//利用方法反射得到value数据
    					id.setText(value.toString());//设置文本
    				} catch (IllegalArgumentException e) {
    					e.printStackTrace();
    				} catch (IllegalAccessException e) {
    					e.printStackTrace();
    				} catch (InvocationTargetException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    		OutputFormat format = new OutputFormat();
    		format.setEncoding("UTF-8");
    		XMLWriter writer = new XMLWriter(out, format);
    		try {
    			writer.write(document);
    			writer.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    }
    
     ok,用到知识很碎,但是这个类通用性很高,只要从数据库获取到一个list数据,还有对应的javaBean类,那么就可以生成对应的xml文件,并加到out对象反馈给客户端

 

分享到:
评论

相关推荐

    dom4j,javaee,jquery,JS,spring,hibernate,h5中文API

    本资源集合涵盖了多个重要的技术领域,包括XML解析(DOM4J),Java企业级应用(JavaEE),客户端脚本语言JavaScript及其库jQuery,以及后端开发中的Spring框架和Hibernate ORM。此外,还包含了HTML5的中文API文档,...

    Ajax+JSP.rar_ajax_ajax jsp download_java ajax jsp_jsp ajax_jsp在线

    【Ajax+JSP技术详解】 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。这种方式可以让...

    Ajax的JSP例子

    **Ajax的JSP例子** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这个例子是基于JSP(JavaServer Pages)实现的,展示了如何利用Ajax与服务器进行异步...

    jsp+ajax实现输入框自动搜索

    jsp+ajax实现输入框自动搜索 本文将详细介绍如何使用jsp和ajax技术实现输入框自动搜索功能,类似于百度搜索。 一、标题:jsp+ajax实现输入框自动搜索 该标题表明该技术使用jsp和ajax实现输入框自动搜索功能。 二...

    Ajax网站开发典型实例JSP源码包

    在本"Ajax网站开发典型实例JSP源码包"中,我们可以深入学习如何使用Ajax与JavaServer Pages (JSP) 结合,创建高效动态的Web应用。 1. **Ajax基础** Ajax的核心是JavaScript对象XMLHttpRequest,它允许JavaScript在...

    JSP+Ajax经典开发实例

    4. **错误处理**:Ajax提供了错误处理机制,当请求失败时,可以捕获错误并显示相应的提示信息,确保应用的健壮性。 5. **库与框架**:在实际开发中,我们通常会借助于jQuery、Prototype、AngularJS等JavaScript库或...

    ajax jsp

    4. **JSP在服务器端的角色**:JSP页面可以处理来自Ajax请求的参数,执行必要的业务逻辑,然后返回响应数据。这可能包括数据库查询、计算或者其他复杂的服务器操作。 5. **响应处理**:在客户端,通过XMLHttpRequest...

    ko.rar_ajax_ajax jsp_javascript_jsp

    本实例“ko.rar_ajax_ajax jsp_javascript_jsp”显然是关于如何在JSP(JavaServer Pages)环境中运用Ajax技术的教程,旨在帮助学习者更好地理解和实践Ajax与JSP的结合。 首先,让我们详细了解一下Ajax的基础。Ajax...

    JDOM&DOM4J;&JSON;&COMMONSjar;包.zip

    总结来说,JDOM和DOM4J用于XML处理,JSON和Gson用于JSON操作,Apache Commons提供各种通用的工具方法,JSTL简化了JSP页面的编写,jQuery插件增强了前端交互,所有这些库都极大地丰富了Java开发者的工具箱,提高了...

    最全Web开发资料大集合:ajax实战 CSS DOM HTML xml手册 JS宝典

    这个压缩包提供了丰富的资源,涵盖了Ajax、XML、DOM、JavaScript和CSS等关键领域的知识。以下是这些技术的详细解释: **Ajax(Asynchronous JavaScript and XML)**: Ajax是一种在不刷新整个网页的情况下,能够...

    Ajax Jsp 连接MySQL数据库

    4. **Ajax请求**:在JSP页面中,我们可以使用JavaScript的XMLHttpRequest对象或jQuery的`$.ajax`方法来发起Ajax请求。例如,创建一个函数`getData()`,设置URL为Servlet的路径,请求类型为GET或POST,数据为SQL查询...

    JSP.Ajax网站开发典型实例

    4. **处理响应**:在Ajax回调函数中解析服务器返回的数据,更新DOM元素。 5. **测试与优化**:确保所有功能正常工作,优化性能,如减少不必要的请求,使用缓存等。 在实际开发中,开发者还可以结合使用现代前端框架...

    jquery ajax jsp

    在IT行业中,jQuery、AJAX和JSP是Web开发中的三个关键组件,它们共同构建了动态、交互式的网页应用。让我们深入探讨这三个技术及其在实际应用中的结合。 **jQuery** 是一个JavaScript库,极大地简化了JavaScript的...

    ajax DOM hibernate jquery jsp [baidu百科集合]

    jQuery封装了大量的DOM操作、事件处理、动画效果和Ajax交互,极大地提高了开发效率。其简洁的语法,如$(selector).action(),使得开发者能快速理解和编写代码。jQuery还具有良好的浏览器兼容性,广泛应用于网页和Web...

    通过DOM和Ajax使用XML_从菜鸟到专家2006

    6. **Java和WinForm中的XML和Ajax**:Java的DOM解析库包括javax.xml.parsers和org.w3c.dom,而JavaServer Pages(JSP)和Servlet可以结合使用实现Ajax功能。WinForm则是.NET Framework下的Windows应用程序开发环境,...

    Jquery+ajax+jsp分页

    4. 数据查询完成后,JSP可以将结果转换成JSON或HTML格式,作为Ajax响应返回。 5. 前端接收到响应数据,如果是JSON,可以使用jQuery的parseJSON()方法解析数据,然后动态插入到DOM中;如果是HTML片段,可以直接使用....

    j2ee dom4j JavaScript struts2帮助文档

    《j2ee dom4j JavaScript struts2帮助文档》是一个包含多个技术领域的综合资源包,主要涉及Java企业级开发中的核心技术和工具。该压缩包包含了以下几个关键文件: 1. **J2EE研究文集.chm**:这是一部关于Java企业版...

    简单的Ajax实例(JSP)

    这个简单的Ajax实例是基于JSP(JavaServer Pages)实现的,它主要用于提升用户体验,通过异步方式与服务器进行数据交互,使得用户在提交表单或执行某些操作时,页面可以保持其当前状态,而只需要更新需要变动的部分...

    ajax实现jsp页面表格

    在本案例中,“ajax实现jsp页面表格”是一个教学示例,它展示了如何利用AJAX技术动态地从数据库获取数据,并在JSP页面的表格中展示,而无需用户感知到页面刷新。 首先,我们来理解一下JSP(JavaServer Pages)。JSP...

    Ajax案例(JSP)

    在这个“Ajax案例(JSP)”中,我们将探讨如何在JSP应用中使用Ajax技术。 首先,了解Ajax的核心概念: 1. **异步通信**:Ajax允许浏览器在不阻塞用户操作的情况下向服务器发送请求,这使得页面在后台与服务器进行...

Global site tag (gtag.js) - Google Analytics