1.需求:初始化任务,定时任务(定时发送邮件)
解决方法:通过<load-om-startup>配合线程知识搞定
在配置web.xml文件后
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>test</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>ServletTest</servlet-name> <servlet-class>ServletTest</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletTest</servlet-name> <url-pattern>/ServletTest</url-pattern> </servlet-mapping> <servlet> <servlet-name>MyInitServlet</servlet-name> <servlet-class>com.myservlet.MyInitServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MyInitServlet</servlet-name> <url-pattern>/MyInitServlet</url-pattern> </servlet-mapping> </web-app>
可以实现定时发送邮件功能
MyInitServlet.java:
package com.myservlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class MyInitServlet */ @WebServlet("/MyInitServlet") public class MyInitServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public MyInitServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } public void init() throws ServletException{ System.out.println("init has been used"); System.out.println("创建数据库,表,读取数据参数"); //创建一个线程 SendEailThred sendemail =new SendEailThred(); sendemail.start(); } }
Thread..java
package com.myservlet; public class SendEailThred extends Thread{ @Override public void run(){ int i=0; while(true){ try { Thread.sleep(10*1000); System.out.println("We have send No."+(++i)+" email");} catch (Exception e) { // TODO: handle exception e.printStackTrace(); }} } }
实现的结果:
<load-on-startup><load-om-startup>可以设置启动顺讯
下面的utf-8将会被写死
重点说明;全局配置
实现结果;
MyServlet1.java
package com.hello; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class MyServlet1 */ //@WebServlet("/MyServlet1") public class MyServlet1 extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public MyServlet1() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String encoding=this.getServletConfig().getInitParameter("encoding"); // response.setCharacterEncoding(this.getServletConfig().getInitParameter("encoding")); response.setCharacterEncoding(encoding); PrintWriter out=response.getWriter(); out.print("编码是"+encoding); // response.getWriter().println("hello,world!"+new java.util.Date().toString()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub this.doGet(request, response); } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>test</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>MyServlet1</servlet-name> <servlet-class>com.hello.MyServlet1</servlet-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>MyServlet1</servlet-name> <url-pattern>/MyServlet1</url-pattern> </servlet-mapping> </web-app>
可以使用枚举遍历;