数据源+freemarker+servlet生成xml文件
来源:互联网 发布:易语言时时彩计划源码 编辑:程序博客网 时间:2024/05/29 15:19
一.步骤:
1.在server.xml文件中建立数据源.
<Service name="Cms"> <Connector debug="0" enableLookups="false" port="8084" protocol="AJP/1.3" redirectPort="8443"/> <Connector acceptCount="100" connectionTimeout="20000" debug="0" disableUploadTimeout="true" enableLookups="false" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8081" redirectPort="8443"/> <Engine defaultHost="localhost_Cms" name="Catalina_Cms"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_cmt_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> <Host autoDeploy="true" debug="0" name="localhost_Cms" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <Context debug="0" docBase="D:WorkspaceCMSweb" path="/" reloadable="true" workDir="D:WorkspaceCMSj2src"> <Resource name="jdbc/news_DB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/news_DB"> <parameter> <name>factory</name> <!-- DBCP Basic Datasource Factory --> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>maxActive</name> <value>1000</value> </parameter> <parameter> <name>validationQuery</name> <value>select 1+1</value> </parameter> <parameter> <name>maxIdle</name> <value>100</value> </parameter> <parameter> <name>maxWait</name> <value>10000</value> </parameter> <parameter> <name>removeAbandoned</name> <value>true</value> </parameter> <parameter> <name>removeAbandonedTimeout</name> <value>60</value> </parameter> <parameter> <name>logAbandoned</name> <value>false</value> </parameter> <parameter> <name>username</name> <value>aaaa</value> </parameter> <parameter> <name>password</name> <value>bbbbbb</value> </parameter> <parameter> <name>driverClassName</name> <value>net.sourceforge.jtds.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:jtds:sqlserver://111.111.111.111:1433/cms</value> </parameter> </ResourceParams> </Context> </Host></Engine> </Service>
2.在web.xml文件中配置servlet
<servlet> <description>generate xml file</description> <servlet-name>NewsXmlServlet</servlet-name> <servlet-class>xml.NewsXmlServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>NewsXmlServlet</servlet-name> <url-pattern>/xmlServlet</url-pattern> </servlet-mapping> <servlet>3.newsXmlServlet.java
package xml;import java.io.*;import java.nio.charset.Charset;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.sql.DataSource;import freemarker.template.Configuration;import freemarker.template.Template;import freemarker.template.TemplateException;import java.util.Locale;public class NewsXmlServlet extends HttpServlet{ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub try { Connection conn=null; Context ctx = new InitialContext(); DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/news_DB"); conn=ds.getConnection(); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery("select url,updatetime,tpf_edu_contentTitle,tpf_edu_contentneirong,tpf_edu_contentlaiyuan,tpf_edu_contentkeyword from tp5__edu_content where url<>'' and url is not null and dateDiff(d,updatetime,getDate())=1 order by updatetime desc"); Configuration cfg=new Configuration(); cfg.setDirectoryForTemplateLoading(new File("E:/wwwroot/CMS/web/WEB-INF/classes/xml")); Template tem=cfg.getTemplate("news.ftl"); List list=new ArrayList(); OutputStreamWriter out=new OutputStreamWriter(System.out); while(rs.next()){ Map item=new HashMap(); item.put("title",rs.getString(3)); item.put("link","http://test.com.cn"+rs.getString(1)); item.put("pubdate",rs.getTimestamp(2)); item.put("content",DelHtml(rs.getString(4))); item.put("source",rs.getString(5)); item.put("keywords",DelHtml(rs.getString(6))); list.add(item); } Map data=new HashMap(); data.put("items",list); StringWriter writer=new StringWriter(); tem.process(data,writer); String content=writer.toString(); writer.close(); createXml(content); out.close(); //resp.setContentType("text/xml; charset=utf-8"); //resp.getWriter().write(content); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TemplateException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String DelHtml(String content){ String contents=content.replaceAll("<//?/s*(/S+)(/s*[^>]*)?/s*//?>",""); contents=contents.replaceAll("“", "”"); contents=contents.replaceAll("”","”"); contents=contents.replaceAll("“", "‘"); contents=contents.replaceAll("”","’"); contents=contents.replaceAll("·","·"); contents=contents.replaceAll("—","—"); contents=contents.replaceAll("…","…"); contents=contents.replaceAll(" ",""); contents=contents.replaceAll(","," "); return contents; } public void createXml(String fileContent){ try { String filePath="E:/wwwroot/cmsHtml/education/news.xml"; File fileXml=new File(filePath); if(!fileXml.exists()){ fileXml.createNewFile(); } /*FileWriter fileWriter=new FileWriter(fileXml); fileWriter. fileWriter.write(fileContent); fileWriter.close();*/ OutputStreamWriter writer=new OutputStreamWriter(new FileOutputStream(fileXml), Charset.forName("utf-8")); writer.write(fileContent); writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void destroy() { // TODO Auto-generated method stub super.destroy(); } public void init() throws ServletException { // TODO Auto-generated method stub super.init(); } }
4.news.ftl
<?xml version="1.0" encoding="utf-8" ?><document> <webSite>edu.aweb.com.cn</webSite> <webMaster>webmaster@aweb.com.cn</webMaster> <updatePeri>1440</updatePeri> <#list items as it> <item> <title><![CDATA[${it.title}]]></title> <link>${it.link}</link> <pubDate>${it.pubdate}</pubDate> <text><![CDATA[${it.content}]]></text> <image/> <source>${it.source}</source> <keywords><![CDATA[${it.keywords}]]></keywords> </item> </#list></document>
- 数据源+freemarker+servlet生成xml文件
- 数据源+freemarker+servlet生成xml文件
- 数据源+freemarker+servlet生成xml文件
- Freemarker+XML+Servlet 实现生成word
- Servlet将数据库文件生成XML文件
- 使用freemarker生成文件
- freemarker 生成静态文件
- freemarker 模版生成文件
- freemarker 模板生成 文件
- 使用FreeMarker生成xml字符串
- 使用freemarker生成XML字符串
- 使用freemarker生成xml模板
- 用freemarker+xml生成word
- FreeMarker入门 生成xml模板
- C# 数据源生成多级xml
- FreeMarker Servlet 的配置 (web.xml)
- FreeMarker Servlet 的配置 (web.xml)
- jsp生成xml文件示例-JSP教程,Jsp/Servlet
- 拓扑排序C++代码实现
- 解决JSP+Struts2.1.6 乱码问题
- 大学生活有哪十大禁忌?
- C语言中的普通算术类型
- js跨域
- 数据源+freemarker+servlet生成xml文件
- K均值算法(代码)
- 世界著名大学公开课视频、文档资料汇总
- Hash索引与B-Tree索引
- 很实用的小机器 索泰ZBOX Nano
- 线程总结
- 详解 Javascript callee,caller , call, apply
- 面试中的十大问题
- Oracle查询表空间的使用情况的SQL语句,很实用