一.步骤: 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("“", "”"); &n