Ví dụ luồng chạy ngầm trong ứng dụng Java Servlet
1. Ví dụ
Đây là một ví dụ mô phỏng một nhiệm vụ được chạy định kỳ, nó chạy ngầm bên dưới ứng dụng Servlet của bạn. Cụ thể cứ một thời gian nhất định nó lại tạo lại tập tin sitemap.xml, đặt tại thư mục gốc của ứng dụng web.
SiteMapGenerator.java
package com.o7planning.example.servlet.listener;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class SiteMapGenerator implements ServletContextListener {
private ScheduledExecutorService scheduler;
@Override
public void contextInitialized(ServletContextEvent event) {
scheduler = Executors.newSingleThreadScheduledExecutor();
Runnable command = new SiteMapThread(event.getServletContext());
// Delay 1 Minute to first execution
long initialDelay = 1;
TimeUnit unit = TimeUnit.MINUTES;
// period the period between successive executions
long period = 60;// 60 Minute!
scheduler.scheduleAtFixedRate(command, initialDelay, period, unit);
}
@Override
public void contextDestroyed(ServletContextEvent event) {
scheduler.shutdownNow();
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>ServletListenerExample</display-name>
<listener>
<listener-class>com.o7planning.example.servlet.listener.SiteMapGenerator</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
SiteMapThread.java
package com.o7planning.example.servlet.listener;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import javax.servlet.ServletContext;
public class SiteMapThread implements Runnable {
private ServletContext context;
public SiteMapThread(ServletContext context) {
this.context = context;
}
@Override
public void run() {
System.out.println("Generate sitemap ... " + new Date());
try {
this.createFile();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Finish generation");
}
private void createFile() throws IOException {
System.out.println("Generate file sitemap.xml to: "
+ context.getRealPath(""));
String path = context.getRealPath("sitemap.xml");
File file = new File(path);
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write("<?xml version='1.0' ?>");
writer.write("<urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9' "
+ " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' "
+ " xsi:schemaLocation='http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd'>");
//
writer.write("<url>");
writer.write("<loc>http://o7planning.org</loc>");
writer.write("<changefreq>daily</changefreq>");
writer.write("<priority>0.80</priority>");
writer.write("</url>");
//
writer.write("<url>");
writer.write("<loc>http://o7planning.org/index.html</loc>");
writer.write("<changefreq>daily</changefreq>");
writer.write("<priority>0.80</priority>");
writer.write("</url>");
//
writer.write("</urlset>");
writer.close();
}
}
Hướng dẫn lập trình Java Servlet/JSP
- Cài đặt Tomcat Server cho Eclipse
- Cài đặt Glassfish Web Server trên Windows
- Chạy ứng dụng Java web Maven trên Tomcat Maven Plugin
- Chạy ứng dụng Java Web Maven trên Jetty Maven Plugin
- Ví dụ luồng chạy ngầm trong ứng dụng Java Servlet
- Hướng dẫn lập trình Java Servlet cho người mới bắt đầu
- Hướng dẫn và ví dụ Java Servlet Filter
- Hướng dẫn lập trình Java JSP cho người mới bắt đầu
- Hướng dẫn sử dụng Java JSP Standard Tag Library (JSTL)
- Cài đặt Web Tools Platform cho Eclipse
- Tạo một ứng dụng Login đơn giản và bảo mật với Java Servlet Filter
- Tạo một ứng dụng Java Web đơn giản sử dụng Servlet, JSP và JDBC
- Upload và download file lưu trữ trên ổ cứng với Java Servlet
- Upload và Download file từ Database sử dụng Java Servlet
- Hiển thị ảnh từ database với Java Servlet
- Redirect 301 chuyển hướng vĩnh viễn trong Java Servlet
- Làm sao tự động chuyển hướng http thành https trong ứng dụng Java Web
- Hướng dẫn sử dụng Google reCAPTCHA trong ứng dụng Web Java
Show More