`

数据源+freemarker+servlet生成xml文件

阅读更多

一.步骤:

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("&ldquo;""");
  &n
分享到:
评论

相关推荐

    freemarker+itext生成PDF

    在Java应用中,FreeMarker通常与Servlet容器一起使用,用于生成动态网页内容,但也可以用来生成任何类型的文本输出,包括PDF。 接下来是Itext。Itext提供了一系列API,可以方便地创建PDF文档,包括添加文本、图像、...

    springMvc+myBatis+freemarker+maven

    3. **MyBatis配置**:配置MyBatis的核心配置文件(mybatis-config.xml),包括数据源、事务管理器、SqlSessionFactory等。同时,编写Mapper接口和对应的XML映射文件,定义SQL语句。 4. **Freemarker模板**:创建...

    springMVC+ibatis+FreeMarker 连接 mycat 示例

    在Web应用中,FreeMarker接收从后台传递的数据,结合模板文件生成用户友好的页面,实现了视图层的分离,提高了代码的可维护性。 Mycat作为数据库中间件,它的工作原理是将一个大数据库切分为多个小数据库,通过负载...

    基于SSM+FreeMarker搭建的Java后台工程模板.zip

    - 配置MyBatis的主配置文件(`mybatis-config.xml`),包括数据源、Mapper扫描路径等。 - 设计数据库表结构,编写对应的实体类和Mapper接口。 - 编写Mapper XML文件,编写SQL语句,实现数据的增删改查操作。 - ...

    spring4mvc+mybatis3+freemarker+oracle完整框架demo

    - `spring-servlet.xml`:Spring MVC的配置文件,包含Bean定义,如视图解析器、数据源、MyBatis的SqlSessionFactory等。 - `mybatis-config.xml`:MyBatis的全局配置文件,定义了数据源、事务管理器等。 - `mapper`...

    springmvc+freemarker带sql的登录事例

    在`applicationContext.xml`中,我们将配置数据源和Hibernate的SessionFactory。数据源用于连接到数据库,SessionFactory则为操作数据库提供对象/关系映射(ORM)支持。对于SQL查询,我们可以在Service层编写,通过...

    maven+springMvc+freemarker

    INF`下的`web.xml`和`dispatcher-servlet.xml`等Spring MVC配置文件以及`WEB-INF/views`下的FreeMarker模板文件)。此外,可能还包含了示例的Controller、Service、DAO以及FreeMarker模板文件,以便初学者理解和学习...

    spring mvc + hibernate + freemarker开源项目源码下载.zip

    通过配置hibernate.cfg.xml文件,我们可以定义数据源、映射文件等。实体类使用了@Entity注解,表明它们是数据库表的映射。同时,@Id标注主键字段,@GeneratedValue则指定了主键生成策略。使用Session对象进行CRUD...

    springMvc+freemarker

    2. **spring-servlet.xml**:Spring MVC的核心配置文件,定义了Bean的定义、数据源、视图解析器(可能是FreeMarkerViewResolver)、以及Controller的映射。 3. **Controller类**:例如`HelloWorldController.java`...

    spring + hibernate + freemarker项目实例

    1. 配置Spring:设置Spring的核心配置文件(如`applicationContext.xml`),定义bean的定义和依赖关系,包括数据源、SessionFactory、事务管理器等。 2. 配置Spring MVC:创建`web.xml`文件,配置DispatcherServlet...

    springmvc+hibernate+freemarker基于注解

    3. WEB-INF:web应用的目录,包含web.xml配置文件,以及Spring MVC的servlet配置。 4. lib:存放项目的依赖库,包括Spring、Hibernate、FreeMarker等框架的jar包。 在实际开发中,通过Spring MVC的...

    基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发

    在Java Web应用中,FreeMarker通常与Servlet容器结合使用,用于生成动态网页内容。在这个项目中,FreeMarker被用来渲染后台管理系统的界面,允许开发者将业务逻辑与视图层分离,提高代码的可维护性和灵活性。 3. **...

    FreeMarKer+jsp使用(Struts2+Servlet).

    FreeMarker 是一个强大的模板引擎,主要用于将数据模型与模板结合,生成各种文本输出,包括但不限于HTML、XML、RTF和Java源代码等。它的核心理念是分离表现层(视图)和业务逻辑层(模型),使得开发者能够专注于...

    自写FreeMarker导出数据为EXcel实例

    在本实例中,"自写FreeMarker导出数据为EXcel"是利用FreeMarker模板语言和Servlet技术来生成Excel文件,方便地导出数据。下面将详细介绍这个过程以及涉及的相关知识点。 1. **FreeMarker模板引擎**: FreeMarker是...

    freemark+struct2.0文章上传生成静态页面

    在Structs2.0中,`WEB-INF/web.xml`文件是应用的部署描述符,定义了应用的初始化参数、Servlet和Filter的映射等。 总的来说,"Freemarker+Structs2.0文章上传生成静态页面"系统是一个高效、灵活的解决方案,它结合...

    freemarker 中文乱码解决

    4. 如果仍然存在问题,检查系统环境变量和数据模型的编码,确保数据源的编码与项目编码相匹配。 5. 最后,尝试统一项目编码为UTF-8,这是最简单且最有效的解决方案。 通过上述方法,可以有效地解决Freemarker中出现...

    freemarker+spring+maven代码

    2. **配置Spring MVC**:在`WEB-INF`目录下创建`dispatcher-servlet.xml`文件,配置Spring MVC的核心组件,包括视图解析器(FreeMarkerViewResolver),如: ```xml &lt;bean class="org.springframework.web.servlet...

    Freemarker简介及标签详解大全

    虽然 FreeMarker 具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由 FreeMarker 生成页面,通过模板显示准备的数据。 -FreeMarker 的特性: 1. 通用目标:能够生成各种文本:HTML、XML、RTF、Java 源...

    ssm-freemarker-demo.zip

    这些配置文件定义了组件的bean,数据源,视图解析器,扫描的包路径等。 9. **FreeMarker配置**:在SpringMVC中,需要配置FreeMarkerViewResolver,指定模板路径和文件扩展名,以便于SpringMVC能够找到并解析...

    FreeMarker

    FreeMarker 是一款模板引擎,它主要功能是基于模板和变动的数据来生成输出文本,这些文本可以是 HTML 网页、电子邮件、配置文件、源代码等。这款工具并非面向最终用户,而是作为一个 Java 类库被程序员嵌入到他们...

Global site tag (gtag.js) - Google Analytics