Java 如何在程序中实现servletcontextlistener?

Java 如何在程序中实现servletcontextlistener?,java,servlets,Java,Servlets,在我提交作业之前,老师告诉我该项目的一个要求是使用servletcontextlistener。我读了所有关于它的书,但我没有实际的技能来实现它。有人能解释一下我是如何在我的程序中轻松实现这个方法的,它仍然是有用的吗?多谢各位 任务是建立一个网站(前端)并制作一个表单(后端)。这是servlet代码,我认为您不需要查看HTML和JavaScript @WebServlet("/ServletProjekt") public class ServletProjekt ext

在我提交作业之前,老师告诉我该项目的一个要求是使用servletcontextlistener。我读了所有关于它的书,但我没有实际的技能来实现它。有人能解释一下我是如何在我的程序中轻松实现这个方法的,它仍然是有用的吗?多谢各位

任务是建立一个网站(前端)并制作一个表单(后端)。这是servlet代码,我认为您不需要查看HTML和JavaScript

      @WebServlet("/ServletProjekt")
      public class ServletProjekt extends HttpServlet{
      private static final long serialVersionUID = 1L;


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String firstName = request.getParameter("förnamn");
    String lastName = request.getParameter("efternamn");
    String address = request.getParameter("address");
    String email = request.getParameter("email");
    String howoften = request.getParameter("howoften");
    String newsabout = request.getParameter("news");
    String[] age = request.getParameterValues("age");


    Cookie firstname = new Cookie ("firstname", firstName);
    Cookie lastname = new Cookie ("lastname", lastName);
    Cookie Address = new Cookie ("Address", address);
    Cookie mail = new Cookie ("mail", email);
    Cookie HowOften = new Cookie ("HowOften?", howoften);
    Cookie news = new Cookie ("news", newsabout);

    firstname.setMaxAge(60 * 60 * 24);
    lastname.setMaxAge(60 * 60 * 24);
    Address.setMaxAge(60 * 60 * 24);
    mail.setMaxAge(60 * 60 * 24);
    HowOften.setMaxAge(60 * 60 * 24);
    news.setMaxAge(60 * 60 * 24);

    response.addCookie(firstname);
    response.addCookie(lastname);
    response.addCookie(Address);
    response.addCookie(mail);
    response.addCookie(HowOften);
    response.addCookie(news );



        response.setContentType("text/html");
        PrintWriter printWriter = response.getWriter();
        printWriter.write("<html>");
        printWriter.write("<h1> THANK YOU FOR YOUR INFORMATION</h1>");
        printWriter.write("<body>");
        printWriter.write("<p>Your name:</p>" + firstName);
        printWriter.write("<br>");
        printWriter.write("<p>Your last name:</p>" +lastName + "<br>");
        printWriter.write("<p>Your address:</p>" +address + "<br>");
        printWriter.write("<p>Your choice of often:</p>" +howoften + "<br>");
        printWriter.write("<p>Your choice of news:</p>" +newsabout + "<br>");
        printWriter.write("<p>Your email:</p>" +email + "<br>");

        for (String ages : age) {
            printWriter.write("<p>Your age:</p>" +ages + "<br>");
        }

        printWriter.write("<a href =\"GetAllCookies\">View All Cookies</a>");

        printWriter.write("</body>");
        printWriter.write("</html>");

}

}
@WebServlet(“/ServletProjekt”)
公共类ServletProjekt扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
String firstName=request.getParameter(“förnamn”);
字符串lastName=request.getParameter(“efternamn”);
字符串地址=request.getParameter(“地址”);
字符串email=request.getParameter(“email”);
String howfrequency=request.getParameter(“howfrequency”);
字符串newsauto=request.getParameter(“新闻”);
String[]age=request.getParameterValues(“age”);
Cookie firstname=新Cookie(“firstname”,firstname);
Cookie lastname=新Cookie(“lastname”,lastname);
Cookie地址=新Cookie(“地址”,地址);
Cookie mail=新Cookie(“邮件”,电子邮件);
Cookie HowFrequency=新Cookie(“HowFrequency?”,HowFrequency);
Cookie news=新Cookie(“新闻”,newsabout);
firstname.setMaxAge(60*60*24);
lastname.setMaxAge(60*60*24);
地址:setMaxAge(60*60*24);
mail.setMaxAge(60*60*24);
设置最大年龄(60*60*24);
新闻。设置最大年龄(60*60*24);
addCookie(名字);
addCookie(lastname);
addCookie(地址);
addCookie(邮件);
回复:addCookie(多久一次);
回复:addCookie(新闻);
response.setContentType(“text/html”);
PrintWriter PrintWriter=response.getWriter();
printWriter.写(“”);
printWriter.write(“感谢您提供的信息”);
printWriter.写(“”);
printWriter.写(“你的名字:

”+名字); printWriter.write(“
”); printWriter。写(“你的姓:

”+lastName+“
”); printWriter。写(“你的地址:

”+地址+”
”; printWriter。写(“你选择的频率:

”+多久一次+”
”; printWriter。写(“您选择的新闻:

”+newsauton+”
”; printWriter。写(“你的电子邮件:

”+电子邮件+”
”; 用于(字符串年龄:年龄){ printWriter。写(“你的年龄:

”+ages+”
”; } printWriter.写(“”); printWriter.写(“”); printWriter.写(“”); } }
实现以下接口:

javax.servlet.ServletContextListener
并在web.xml中包含以下内容(用正确的类名替换类名):


com.something.MyContextListener

首先,您需要这样创建

public class yourServletContextListener 
           implements ServletContextListener{

@Override
public void contextDestroyed(ServletContextEvent arg0) {
    System.out.println("ServletContextListener destroyed");
}

    //Run this before web application is started
@Override
public void contextInitialized(ServletContextEvent arg0) {
    System.out.println("ServletContextListener started");   
}
}

并将其写入web.xml中

<listener>
<listener-class>
        fully qualified name for  yourServletContextListener 
    </listener-class>

您的ServletContextListener的完全限定名

同样在Servlet 3.0中,您可以使用来实现侦听器。
<listener>
<listener-class>
        fully qualified name for  yourServletContextListener 
    </listener-class>