这篇文章跟上一篇,做了一些大的改动,主要是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对象反馈给客户端
相关推荐
本资源集合涵盖了多个重要的技术领域,包括XML解析(DOM4J),Java企业级应用(JavaEE),客户端脚本语言JavaScript及其库jQuery,以及后端开发中的Spring框架和Hibernate ORM。此外,还包含了HTML5的中文API文档,...
【Ajax+JSP技术详解】 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。这种方式可以让...
**Ajax的JSP例子** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这个例子是基于JSP(JavaServer Pages)实现的,展示了如何利用Ajax与服务器进行异步...
jsp+ajax实现输入框自动搜索 本文将详细介绍如何使用jsp和ajax技术实现输入框自动搜索功能,类似于百度搜索。 一、标题:jsp+ajax实现输入框自动搜索 该标题表明该技术使用jsp和ajax实现输入框自动搜索功能。 二...
在本"Ajax网站开发典型实例JSP源码包"中,我们可以深入学习如何使用Ajax与JavaServer Pages (JSP) 结合,创建高效动态的Web应用。 1. **Ajax基础** Ajax的核心是JavaScript对象XMLHttpRequest,它允许JavaScript在...
4. **错误处理**:Ajax提供了错误处理机制,当请求失败时,可以捕获错误并显示相应的提示信息,确保应用的健壮性。 5. **库与框架**:在实际开发中,我们通常会借助于jQuery、Prototype、AngularJS等JavaScript库或...
4. **JSP在服务器端的角色**:JSP页面可以处理来自Ajax请求的参数,执行必要的业务逻辑,然后返回响应数据。这可能包括数据库查询、计算或者其他复杂的服务器操作。 5. **响应处理**:在客户端,通过XMLHttpRequest...
本实例“ko.rar_ajax_ajax jsp_javascript_jsp”显然是关于如何在JSP(JavaServer Pages)环境中运用Ajax技术的教程,旨在帮助学习者更好地理解和实践Ajax与JSP的结合。 首先,让我们详细了解一下Ajax的基础。Ajax...
总结来说,JDOM和DOM4J用于XML处理,JSON和Gson用于JSON操作,Apache Commons提供各种通用的工具方法,JSTL简化了JSP页面的编写,jQuery插件增强了前端交互,所有这些库都极大地丰富了Java开发者的工具箱,提高了...
这个压缩包提供了丰富的资源,涵盖了Ajax、XML、DOM、JavaScript和CSS等关键领域的知识。以下是这些技术的详细解释: **Ajax(Asynchronous JavaScript and XML)**: Ajax是一种在不刷新整个网页的情况下,能够...
4. **Ajax请求**:在JSP页面中,我们可以使用JavaScript的XMLHttpRequest对象或jQuery的`$.ajax`方法来发起Ajax请求。例如,创建一个函数`getData()`,设置URL为Servlet的路径,请求类型为GET或POST,数据为SQL查询...
4. **处理响应**:在Ajax回调函数中解析服务器返回的数据,更新DOM元素。 5. **测试与优化**:确保所有功能正常工作,优化性能,如减少不必要的请求,使用缓存等。 在实际开发中,开发者还可以结合使用现代前端框架...
在IT行业中,jQuery、AJAX和JSP是Web开发中的三个关键组件,它们共同构建了动态、交互式的网页应用。让我们深入探讨这三个技术及其在实际应用中的结合。 **jQuery** 是一个JavaScript库,极大地简化了JavaScript的...
jQuery封装了大量的DOM操作、事件处理、动画效果和Ajax交互,极大地提高了开发效率。其简洁的语法,如$(selector).action(),使得开发者能快速理解和编写代码。jQuery还具有良好的浏览器兼容性,广泛应用于网页和Web...
6. **Java和WinForm中的XML和Ajax**:Java的DOM解析库包括javax.xml.parsers和org.w3c.dom,而JavaServer Pages(JSP)和Servlet可以结合使用实现Ajax功能。WinForm则是.NET Framework下的Windows应用程序开发环境,...
4. 数据查询完成后,JSP可以将结果转换成JSON或HTML格式,作为Ajax响应返回。 5. 前端接收到响应数据,如果是JSON,可以使用jQuery的parseJSON()方法解析数据,然后动态插入到DOM中;如果是HTML片段,可以直接使用....
《j2ee dom4j JavaScript struts2帮助文档》是一个包含多个技术领域的综合资源包,主要涉及Java企业级开发中的核心技术和工具。该压缩包包含了以下几个关键文件: 1. **J2EE研究文集.chm**:这是一部关于Java企业版...
这个简单的Ajax实例是基于JSP(JavaServer Pages)实现的,它主要用于提升用户体验,通过异步方式与服务器进行数据交互,使得用户在提交表单或执行某些操作时,页面可以保持其当前状态,而只需要更新需要变动的部分...
在本案例中,“ajax实现jsp页面表格”是一个教学示例,它展示了如何利用AJAX技术动态地从数据库获取数据,并在JSP页面的表格中展示,而无需用户感知到页面刷新。 首先,我们来理解一下JSP(JavaServer Pages)。JSP...
在这个“Ajax案例(JSP)”中,我们将探讨如何在JSP应用中使用Ajax技术。 首先,了解Ajax的核心概念: 1. **异步通信**:Ajax允许浏览器在不阻塞用户操作的情况下向服务器发送请求,这使得页面在后台与服务器进行...