java 定时器生成sitemap.xml

公司的网站需要做SEO优化,需要生成sitemap.xml文件,我的思路使用java内置定时器,每24小时生成一次,关于url地址,考虑到使用分布式框架实现比较麻烦,就使用配置property文件的方式,获取需要的url,由于项目中使用ssh框架,一时不知道如何配置连接,最后使用原始的jdbc实现了,因为 只需要连接和创建时间,不需要封装对象,很容易实现了!

步骤:

1.配置web.xml

<!-- 配置定时器listener  start -->
    <listener>
   <listener-class>
    cn.aresoft.timerListener.WebSitXmlTimerListener
   </listener-class>
</listener>
<!-- 配置定时器listener  end -->

2.定义定时器

package cn.aresoft.timerListener;


import java.util.Timer;


import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;


public class WebSitXmlTimerListener implements ServletContextListener {
    private Timer timer;  
    private WebSitXmlTask task;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
timer.cancel();
System.out.println("定时器销毁");
}


@Override
public void contextInitialized(ServletContextEvent event) {
 timer = new java.util.Timer(true); 
         task = new WebSitXmlTask();
         System.out.println("定时器启动");  
         timer.schedule(task, 0, 24*60*60*1000);  
         System.out.println("已经添加任务调度表");  
}
}

3.定义定时器任务

  package cn.aresoft.timerListener;


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.TimerTask;


import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;


import cn.aresoft.logic.manager.customer.LoanService;


public  class WebSitXmlTask extends TimerTask{
private static Connection conn ;
static{
//获取数据连接
Map map = PropertiesUtil.read("jdbc");
String driver=(String) map.get("jdbc.driver");
String url=(String) map.get("jdbc.url");
String user=(String) map.get("jdbc.user");
String pwd=(String) map.get("jdbc.pwd");
try {
Class.forName(driver);
conn= DriverManager.getConnection(url, user, pwd);
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private LoanService loanService;
public LoanService getLoanService() {
return loanSe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值