zoukankan      html  css  js  c++  java
  • servlet的细节继续

    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>
    View Code

     可以实现定时发送邮件功能

    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();
        }
    
    }
    View Code

    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();
        }}
    }
    }
    View Code

    实现的结果:

    <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);    
        }
    
    }
    View Code

    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>
    View Code

     可以使用枚举遍历;

  • 相关阅读:
    ES分页
    在github上使用workflow构建docker镜像并推送阿里云
    xxl-job滥用netty导致的问题和解决方案
    使用netty实现socks5协议
    docker日志设置
    关于我
    友情链接
    分布式任务调度系统:xxl-job
    SpringBoot自定义配置以及IDEA配置提示
    frp穿透内网使用vsftpd服务
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10990533.html
Copyright © 2011-2022 走看看