`

jsp调用xml和xslt动态生成html页面的两种实现方法

阅读更多

工作的需要,用到了在jsp中调用xml、xslt生成静态页面,下面把自己写过的放到这,以后备用和学习。。。写的不好,尽管扔砖头。。。

第一种实现方式::
xml从调用服务器端的方法返回字符串类型
<%@page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@page import="java.io.FileInputStream"%>
<%@page import="java.io.File"%>
<%@page import="org.springframework.web.context.support.WebApplicationContextUtils"%>
<%@page import="org.springframework.context.ApplicationContext"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@page import="javax.xml.transform.TransformerFactory"%>
<%@page import="javax.xml.transform.stream.StreamResult"%>
<%@page import="javax.xml.transform.stream.StreamSource"%>
<%@page import="javax.xml.transform.Transformer"%>
<%@page import="服务器端bean"%>
<%@page import="java.io.StringReader"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>XXX界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>

<%
String topicName="";
if(request.getParameter("topic")!=null){topicName = request.getParameter("topic");}
ApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
//下面这句是加载服务器端bean
XXXService xxxService = (XXXService) applicationContext.getBean("xxxService");
//以下是调用服务器端方法发挥xml格式字符串
String xmlSource = xxxService.loadTopicDefineXmlByCn(topicName);
StreamSource xml = new StreamSource(new StringReader(xmlSource));
StreamSource xsl = new StreamSource(new File("d:\\Tomcat-6\\webapps\\项目\\info\\model.xslt"));
ByteArrayOutputStream resultByte = new ByteArrayOutputStream();
//response.setContentType("text/html; charset=UTF-8");
StreamResult result = new StreamResult(resultByte);

Transformer trans = TransformerFactory.newInstance().newTransformer(xsl);
trans.setParameter("entity_name",topicName);
//trans.setOutputProperty("encoding","UTF-8");
trans.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,  
         "GB2312");
trans.transform(xml, result);
out.print(resultByte.toString()); 

%>
</body>
</html>


第二种实现方法::

--------xml文件以路径的方式获得

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body> 
<%
String topicName="";
if(request.getParameter("topic")!=null){topicName = request.getParameter("topic");}
ApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
//下面这句是加载服务器端bean
XXXService xxxService = (XXXService) applicationContext.getBean("xxxService");
FileInputStream sourceXml = new FileInputStream(resourceService.loadTopicDefineXmlByCn(topicName));
//FileInputStream sourceXml = new FileInputStream(new File("D:\\Tomcat-6\\webapps\\项目\\info\\model.xml"));
ByteArrayOutputStream resultByte = new ByteArrayOutputStream();
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(new File("d:\\Tomcat-6\\webapps\\项目\\info\\model.xslt")));
transformer.setParameter("entity_name",topicName);
StreamResult streamResult = new StreamResult(resultByte);
transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,  
         "GB2312");
transformer.transform(new StreamSource(sourceXml), streamResult);
out.print(resultByte.toString());
%>
</body>
</html>

 

分享到:
评论

相关推荐

    JSP结合XML+XSLT将输出转换HTML

    在这个JSP页面中,我们首先加载XML和XSLT文件,然后创建一个`Transformer`实例,使用XSLT文件作为参数。之后,我们调用`transform`方法将XML转换为HTML,并将结果写入到一个`StringWriter`。最后,JSP将HTML内容输出...

    高级WEB编程技术(JSP与XML)教学网页

    JSP是Java平台上的动态网页开发技术,而XML则是一种用于数据交换和存储的标记语言。两者结合使用,可以构建高效、可扩展且具有强大数据处理能力的Web应用程序。 ### JSP技术详解 1. **JSP基本概念**:JSP是一种...

    jsp+xml的一个小demo

    XSLT(XSL Transformations)是一种转换XML文档的语言,JSP可以调用XSLT处理器来将XML数据转换为其他格式,如HTML或PDF。这通常通过Java的Transformer类实现,如`Transformer.transform(source, result)`。 6. **...

    动态生成Java Bean测试页面

    4. **XSLT(Extensible Stylesheet Language Transformations)**:在提供的文件列表中出现了“bean-test.xslt”,这可能是一个XSL转换文件,用于将XML数据转换成HTML,可能用于生成测试页面的模板。 5. **HTML和...

    中英文文献_JSP与XML的结合

    JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者在HTML中嵌入Java代码,以实现动态内容的生成。JSP与XML结合,能够利用XML的数据描述能力增强网页的逻辑处理。例如,JSP可以通过解析XML文档,提取...

    JSP and XML Working Together.ppt

    JSP负责动态内容的生成和页面呈现,而XML则提供了数据的结构化存储和配置。这种组合在处理复杂应用时,如用户个性化配置、数据驱动的动态界面等方面,表现出强大的优势。同时,通过XSLT,XML数据可以根据需要转换成...

    JAVA WEB 开发详解

    **JSP(JavaServer Pages)**是一种基于Java的动态网页技术标准,它将Java代码和静态网页内容混合在一起创建动态网页。 - **JSP页面元素:** - 脚本元素:用于编写Java代码; - 指令元素:设置JSP页面的行为,如...

    javaee5、mysql、servlet、jdk、jsp、xml帮助文档API打包

    理解和掌握XML Schema(XSD)用于验证XML文档的结构,以及XPath和XSLT用于操作和转换XML数据,对于处理XML数据至关重要。 这些API文档的打包集合为后端开发者提供了一个完整的参考库,涵盖了从数据库操作到Web...

    XML processing with Java

    在本章节中,我们将深入探讨如何使用Java处理XML文档,主要通过Document Object Model (DOM)、Simple API for XML Parsing (SAX) 和 Extensible Stylesheet Language Transformations (XSLT) 这三种方法来实现。...

    JSP 技术大全

    JSP可以通过`&lt;jsp:forward&gt;`动作调用Servlet,或者Servlet可以重定向到JSP来生成动态内容。 6. **JavaBean** JavaBean是符合特定规范的Java类,通常用于封装数据和业务逻辑。在JSP中,JavaBean可以作为域对象使用...

    XML在B/S架构开发中的应用

    XML(eXtensible Markup Language)在B/S(Browser/Server,浏览器/服务器)架构开发中扮演着重要的角色,尤其当结合XSLT(Extensible Stylesheet Language Transformations)使用时,可以提供一种更为灵活、结构化...

    xsl标识库jar包

    使用这个jar包,开发者可以在JSP页面中创建一个Transformer对象,加载XML源文件和XSL样式表,然后调用transform方法进行转换。转换的结果通常是一个字符串,可以被写入到HTTP响应中,或者存储到文件系统中。 以下是...

    JavaScript完全自学宝典 源代码

    8.10.html 使用write()方法生成页面。 8.11.html 使用writeln()方法生成文本并换行。 第9章(\c09) 示例描述:学习JavaScript中的window对象。 9.1.html 控制状态条信息显示。 9.2.html 框架定义...

    w3school_Java&JSP;教程

    JavaServer Pages (JSP) 是一种用于生成动态 Web 页面的技术。它将 Java 代码嵌入 HTML 文件中,使得开发人员可以创建动态内容。 **JSP开发环境搭建** 搭建 JSP 开发环境通常包括安装 Java、Web 服务器(如 Apache...

    JSPLesson

    **JavaServer Pages(JSP)** 是Java平台上用于创建动态网页的一种技术。JSP允许开发人员将静态内容(如HTML)与动态生成的内容(如Java代码)分离,使得Web应用的开发和维护更加方便。在JSP中,开发者可以使用内置...

    xml java tutorial

    此外,通过自定义JSP标签调用XSLT,可以在Web应用程序中动态地呈现XML数据,提供丰富的用户界面体验。 ### JAXP:隐藏供应商特异性细节 Java API for XML Processing (JAXP)提供了一组标准的API,用于处理XML文档...

    Java,XML和Web服务宝典

    XPath、XSLT和XQuery等XML相关技术,则分别用于定位XML文档中的节点、转换XML数据以及查询XML数据。 Web服务是一种通过HTTP协议进行通信的软件接口,允许不同系统之间的互操作性。SOAP(Simple Object Access ...

    用JAVA和XML构建分布式系统

    在构建分布式系统时,Java和XML是两种非常关键的技术。Java以其强大的跨平台能力和丰富的类库,成为构建大型、复杂系统的首选语言。而XML(eXtensible Markup Language)则作为数据交换和配置文件的标准,使得不同...

    XML和J2EE的完美结合.doc

    在J2EE环境中,Java服务器页面(JSP)和Servlets可以利用这些技术将XML数据转化为用户友好的HTML页面,从而提供动态和交互式的Web应用。 随着技术的发展,XML在J2EE中的应用也在不断演进。例如,Web服务标准如WSDL...

Global site tag (gtag.js) - Google Analytics