- 浏览: 142556 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
skylcf:
整个页面的代码呢?
jquery动态添加行并计算总金额 -
dingherry:
没有大图中图,怎么做?
图片放大镜效果 -
yinjj472:
package com.yin.test;
public c ...
JAVA设计模式之单例模式 -
wangyu1221:
放在spring里面,是不是就不用那么多static priv ...
JAVA设计模式之单例模式 -
xurichusheng:
<p> </p>
<pre na ...
JAVA设计模式之单例模式
站想要让搜索引擎搜到,必须设置好keywords,description,title,做好SEO优化,同时sitemap.xml也是不可缺少的
通过Google,得到一些帮助,把自己做的整理一下:
第一、对文件进行查找:
public class FileDemo { File myDir; File[] contents; List fileList; Iterator currentFileIt; File currentFile; String path; /** * 无参的构造函数 * */ public FileDemo() { path = new String(""); fileList = new ArrayList(); } /** * 有参的构造函数 * */ public FileDemo(String path) { this.path = path; fileList = new ArrayList(); } /** * 设置要查看的文件路径 */ public void setPath(String path) { this.path = path; } /*************************************************************************** * 返回当前目录的路径 */ public String getDirectory() { return myDir.getPath(); } public void refreshList() { if (this.path.equals("")) path = "c:\\"; myDir = new File(path); fileList.clear(); contents = myDir.listFiles(); // 重新装入路径下文件 for (int i = 0; i < contents.length; i++) { fileList.add(contents[i]); } currentFileIt = fileList.iterator(); } /** * 指到下一个条目 */ public boolean nextFile() { while (currentFileIt.hasNext()) { currentFile = (File) currentFileIt.next(); return true; } return false; } /** * 返回当前指向的文件对象的文件名称 */ public String getFileName() { return currentFile.getName(); } /** * 返回当前指向的文件对象的文件尺寸 */ public String getFileSize() { return convertFileSize(currentFile.length()); } /** * 转换文件尺寸为指定格式。 */ private String convertFileSize(long size) { int divisor = 1; String unit = "bytes"; if (size >= 1024 * 1024) { divisor = 1024 * 1024; unit = "MB"; } else if (size >= 1024) { divisor = 1024; unit = "KB"; } if (divisor == 1) return size / divisor + " " + unit; String aftercomma = "" + 100 * (size % divisor) / divisor; if (aftercomma.length() == 1) aftercomma = "0" + aftercomma; return size / divisor + "." + aftercomma + " " + unit; } /** * 返回文件的最后修改日期 */ public String getFileTimeStamp() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = sdf.format(new Date(currentFile.lastModified())); return dateString; } /** * 返回文件是不是一个目录 */ public boolean isDirectory() { return currentFile.isDirectory(); } }
第二、创建一个任务类,继承TimerTask
public class XMLParese extends TimerTask{ private ServletContext context; public XMLParese(ServletContext context){ this.context=context; } @Override public void run() { // TODO Auto-generated method stub createSiteMap(); } public void createSiteMap() { String priority = "0.75";// 级 别 String changefreq = "daily";// "weekly";//频 率 String xmlpath = "e:/sitemap.xml";// sitemap名称以及位置 String homeurl = "http://www.jiujiajiu.cn"; // 栏目首页 String []directory={"promotion","news","brand","goods","services","shop","winelive"}; FileDemo fp = new FileDemo(); try { Document document = DocumentHelper.createDocument(); Element urlsetElement = document.addElement("urlset"); urlsetElement.addAttribute("xmlns ", "http://www.sitemaps.org/schemas/sitemap/0.9"); // "xmlns // "必须要有空格,否则会报错 urlsetElement.addAttribute("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9"); urlsetElement.addAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); urlsetElement.addAttribute("xsi:schemaLocation", "http://www.sitemaps.org/schemas/sitemap/0.9 " + "http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"); //创建url根元素 Element urlElement ; //为url根元素创建loc网页地址,lastmod更新时间,changefreq更改频率和priority级别 Element locElement ; Element lastmodElement; Element changefreqElement; Element priorityElement; fp.setPath("D:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\ROOT\\"); fp.refreshList(); while (fp.nextFile()) { if (!fp.isDirectory()) { homeurl="http://www.jiujiajiu.cn/"; String f=fp.getFileName(); String fname=f.substring(f.lastIndexOf(".")); if((fname.equals(".html")||fname.equals(".htm")) && !f.equals("login.html")){ urlElement = urlsetElement.addElement("url"); locElement = urlElement.addElement("loc"); lastmodElement = urlElement.addElement("lastmod"); changefreqElement = urlElement.addElement("changefreq"); priorityElement = urlElement.addElement("priority"); //导航赋值 homeurl = homeurl + fp.getFileName(); locElement.setText(homeurl); lastmodElement.setText(fp.getFileTimeStamp());// 这里时间是你更新时间,这里暂时统一 changefreqElement.setText(changefreq); priorityElement.setText(priority); } } } //各个目录下的文件 for(int i=0;i<directory.length;i++){ fp.setPath("D:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\ROOT\\"+directory[i]+"\\"); fp.refreshList(); while (fp.nextFile()) { homeurl="http://www.jiujiajiu.cn/"+directory[i]+"/"; urlElement = urlsetElement.addElement("url"); locElement = urlElement.addElement("loc"); lastmodElement = urlElement.addElement("lastmod"); changefreqElement = urlElement.addElement("changefreq"); priorityElement = urlElement.addElement("priority"); homeurl = homeurl + fp.getFileName(); locElement.setText(homeurl); lastmodElement.setText(fp.getFileTimeStamp());// 这里时间是你更新时间,这里暂时统一 changefreqElement.setText(changefreq); priorityElement.setText(priority); } } XMLWriter writer = new XMLWriter(new FileOutputStream(new File( xmlpath))); writer.write(document); writer.close(); document = null; // 格式化 formatXMLFile(xmlpath, "UTF-8"); } catch (Exception ex) { ex.printStackTrace(); } } /** * 格式化XML文档,并解决中文问题 * @param xmlpath:xml文件路径 * @param charSet:格式化的字符集 * @return */ public static boolean formatXMLFile(String xmlpath, String charSet) { boolean returnValue = false; try { SAXReader saxReader = new SAXReader(); Document document = saxReader.read(new File(xmlpath)); XMLWriter output = null; OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(charSet); output = new XMLWriter(new FileWriter(new File(xmlpath)), format); output.write(document); output.close(); document = null; saxReader = null; returnValue = true; } catch (Exception ex) { ex.printStackTrace(); } return returnValue; } }
第三、创建一个任务监听类,实现ServletContextListener 接口
public class TimerListener implements ServletContextListener { // 设置启动时间为23点; private static final int hours = 23; private static final int minutes = 0; private static final int seconds = 0; private Timer timer = null; public void contextDestroyed(ServletContextEvent event) { timer.cancel(); event.getServletContext().log("定时器销毁"); } public void contextInitialized(ServletContextEvent event) { timer=new Timer(true); event.getServletContext().log("定时器已启动"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, hours); calendar.set(Calendar.MINUTE, minutes); calendar.set(Calendar.SECOND, seconds); //SiteMap生成 //间隔时间1天生成一次 timer.schedule(new XMLParese(event.getServletContext()),calendar.getTime(), 1*24*60*60*1000); } }
第四、在web中添加一个监听器
web.xml里的配置
<!-- 定时器 --> <listener> <listener-class>timer.TimerListener</listener-class> </listener>
发表评论
-
SVN的安装配置 以及与MyEclipse 整合使用开发
2011-12-13 10:31 1263... -
利用SimpleDateFormat获得上一个月和年
2011-06-14 10:24 3529主要用的SimpleDateFormat(主要实现格式化)和C ... -
使用Json实现异步提交
2011-03-01 16:59 1185使用Ajax可以实现无刷新页面请求,但对于java来说个人感觉 ... -
淘宝API的应用
2011-02-24 13:54 3671在http://open.taobao.com开放平台下载相应 ... -
匹配img标签中没有alt属性的正则表达式
2011-02-22 14:50 2550找出所有img标签的,没有带说明属性alt的标签: 正则:& ... -
Java中过滤敏感词
2011-01-27 11:38 2335在发表评论,文章时常常需要过滤一些敏感词... 把自己的拿出 ... -
常用正则表达式整理
2011-01-25 09:45 817常用正则表达式 正则表达式调试工具:Rege ... -
用JUnit做测试时出现的问题
2011-01-21 17:54 1104测试类: public class loginActi ... -
struts2配置
2011-01-13 16:43 1005对于struts大家也许都不陌生,但很多时候可能还会出错,今天 ... -
Xdebug的安装
2010-12-31 16:11 811xdebug是一个开源的php调试器,以php模块的形式加载并 ... -
MyEclipse使用时有时svn的版本会不显示问题解决
2010-11-02 13:29 1428有时候再用MyEclipse时,你重新下载项目,然后会不 ... -
JAVA实现写入文件到文本文档
2010-10-20 09:03 14231.以PrintWriter来实现写入 import ... -
自定义checkbox的大小
2010-10-13 11:23 1914自定义checkbox的大小:用css的zoom属性,< ... -
Apache优化
2010-10-13 10:17 867通过对Apache2增加模块MPM来进行优化. 开启mpm:I ... -
seo 搜索引擎优化
2010-10-12 10:31 841SEO是Search Engine Optimization的 ... -
存储过程的优点
2010-10-12 09:37 971存储过程的优点: 1.存储过程只在创造时进行编译,以 ... -
PHP文件管理系统,可以远程管理服务器上的文件,包括上传,下载,新建,编辑,复制,粘贴,删除,远程下载等
2010-09-21 11:14 1239功能特点: 1.可以远程管理服务器上的文件,包括上传,下载,新 ... -
tomcat与Apache配置
2010-09-13 15:29 9871.在配置之前确定Tomcat,Apache已经安装好.在to ... -
配置php-java-bridge,PHP调用自己的JAVA文件
2010-08-28 14:10 1957php_java.dll 需要配置php.ini,新版的php ...
相关推荐
本文将深入探讨如何在Tomcat中实现定时任务,主要涉及的知识点包括Java的定时器(Timer)和Spring框架的TaskScheduler。 首先,让我们了解一下Java中的定时任务。在Java标准库中,有一个名为`java.util.Timer`的类...
在 Java 代码中使用 Tomcat 服务器时,需要添加必要的 JAR 包,并实现 Tomcat 服务器的启动和停止。在本示例代码中,我们使用了 Tomcat 服务器来发布 Web 应用程序,并实现了远程控制 Tomcat 服务器的生命周期。 ...
5. **Spring的AOP与定时任务**:Spring的AOP(面向切面编程)可以用于在定时任务执行前后添加额外的逻辑,比如记录日志、事务管理等。这可以通过定义切面和通知来实现。 6. **异常处理**:在设计定时任务时,需要...
Tomcat 是一个广泛使用的开源 Web 服务器软件,在 Linux 系统中可以使用 cron 任务来实现定时重启,以确保 Tomcat 服务器的稳定运行。下面将详细介绍在 Linux 中创建定时任务,创建 Tomcat 重启的脚本文件,并增加 ...
在Servlet容器(如Tomcat)中,可以通过监听器(Listener)或者Servlet的初始化方法来创建和启动定时器,以实现在Web应用启动后自动开始执行定时任务。 此外,Java 5引入了`java.util.concurrent`包,其中的`...
在部分内容中,我们可以看到使用 Java 程序来监听 Tomcat 服务器的状态,并在 Tomcat 无响应时自动重启 Tomcat 的实现思路。 监听 Tomcat 服务器状态 在 Java 程序中,我们使用定时访问服务器端固定的 JSP 页面...
本压缩包"tomcat_批处理延时命令bat@计划任务"提供的内容恰好聚焦于这个主题,它涉及到如何利用批处理脚本来启动Tomcat服务器,并通过计划任务实现自动化的开机启动。 首先,我们要理解什么是Tomcat。Tomcat是一款...
1.背景:Flex Socket通信及安全策略,使用flex实现客户端,java实现服务端; 2.重点解决安全策略问题:将flash发布为html格式后,本地访问页面后,一般可以与服务器进行socket通信;但是部署到tomcat服务器上后无法...
首先,我们要了解Tomcat中的定时任务通常通过Java的定时框架来实现,最常见的是Java的ScheduledExecutorService或者使用Spring框架的TaskScheduler。这两种方式都可以在Tomcat容器内创建定时任务。 1. **使用...
SpringMVC的Socket实现+Java Tomcat websocket实现+Java Socket通信实现 +Java UDP通信实现。websocket_study.rar 为springMVC版本的socket实现 websocket02.rar 里面包含tomcat的websocket实现+java socket双向通信...
而Tomcat则是一个开源的Java Servlet容器,实现了Java EE的Web应用服务器规范,尤其是Servlet和JSP。 Java源码: Java源码是用Java编程语言编写的程序代码,通常以.java文件形式存在。这些源文件被Java编译器转换为...
这时,如果所有Tomcat实例都使用默认的“java.exe”作为进程名,那么在任务管理器中将难以区分各个实例,不利于监控和管理。因此,更改Tomcat进程名称可以有效解决这一问题,使运维人员能够快速定位和管理各个服务器...
为了使Tomcat生成的日志文件按照日期每天新建,我们需要在配置文件中指定一个包含日期的文件名格式。例如,如果使用`java.util.logging`,可以在`logging.properties`中设置` handlers`为`java.util.logging....
由于工作需求,本人自己制作的 Tomcat 定时重启小工具,监听Tomcat的CMD运行窗口,计算运行时间,来完成 定时重启任务,配置可以自动临时保存,不生成多余文件。打算在后续版本中加入一个 HTTP监听任务,判断是否宕...
标题 "Tomcat自动定时重启" 涉及到的是如何设置和...总之,实现Tomcat自动定时重启是一个涉及多个步骤的过程,需要对操作系统的任务调度、Tomcat的管理和配置有深入理解。合理配置和监控能确保服务器的稳定性和可靠性。
在Java编程语言中,我们可以利用Java管理扩展(Java Management Extensions, JMX)和ManagementFactory类来获取应用程序,如Tomcat服务器的运行时信息。本文将深入探讨如何通过这些工具来监控Tomcat的一些关键信息。...
本文将详细介绍如何利用Apache Tomcat(一个广泛使用的Java应用服务器)与Jenkins(一个开源持续集成/持续部署工具)来创建定时任务,实现电脑自动重启以及Tomcat的开机自启动。 首先,我们需要理解Tomcat的开机自...
本教程将探讨如何在Ubuntu操作系统上,结合Java编程语言、Tomcat服务器以及MySQL数据库来实现这一功能。通过这个过程,我们可以了解到Web开发的基本流程,以及如何整合后端与数据库。 首先,让我们了解Ubuntu操作...
Java嵌入式Tomcat是指将Apache Tomcat服务器集成到Java应用程序中,以便应用程序可以直接启动和控制Tomcat实例,而无需独立部署。这种方式常用于简化测试、微服务或轻量级应用部署。以下是对如何实现这一目标的详细...