简单命中计数器Servlet需要重置功能的URL映射

时间:2015-10-05 00:39:25

标签: java xml servlets servlet-3.0

我目前有一个按钮,可以重置我的点击计数器程序。我想要做的是如果你在你的URL中键入/ counter / reset功能相同的方式。下面是我的web.xml和我的Java程序:

    <servlet>
        <servlet-name>Counter</servlet-name>
        <servlet-class>Counter</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Counter</servlet-name>
        <url-pattern>/counter/show</url-pattern>
        <url-pattern>/counter/display</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Counter extends HttpServlet{
    int counter = 0;
    public void doGet(HttpServletRequest request, HttpServletResponse
    response)throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        if(Boolean.valueOf(request.getParameter("reset"))) {
            counter = 0; 
            response.sendRedirect(getServletContext().getContextPath() +
                request.getServletPath());
        } else {
            counter++;
            pw.println("<html><head/><body>");
            pw.println("<span>Hit Counter:" + counter + "</span>");

            pw.println("<a href=\"" + 
                getServletContext().getContextPath() + 
                request.getServletPath() + 
                "?reset=true" + "\">Reset</a>");
            pw.println("</body></html>");
        }
    }
}

1 个答案:

答案 0 :(得分:1)

用,

替换你的Counter.java和web.xml

Counter.java

import java.io.IOException;    
import java.io.PrintWriter;    
import javax.servlet.ServletException;    
import javax.servlet.http.HttpServlet;    
import javax.servlet.http.HttpServletRequest;    
import javax.servlet.http.HttpServletResponse;    

public class Counter扩展了HttpServlet {

 int counter = 0;
 @Override
public void doGet(HttpServletRequest request, HttpServletResponse
response)throws ServletException, IOException 
{
    response.setContentType("text/html");
    PrintWriter pw = response.getWriter();
    if(request.getServletPath().equals("/counter/reset")) 
    {
        counter = 0; 
        response.sendRedirect(getServletContext().getContextPath()+"/counter/show");
    } else 
    {
        counter++;
        pw.println("<html><head/><body>");
        pw.println("<span>Hit Counter:" + counter + "</span>");

        pw.println("<a href=\"" + 
            getServletContext().getContextPath() + 
            "/counter/reset" + 
             "\">Reset</a>");


        pw.println("</body></html>");

     }
}

}

的web.xml -

<web-app>

<servlet>
    <servlet-name>Counter</servlet-name> 
    <servlet-class>Counter</servlet-class>   
</servlet>

<servlet-mapping>
    <servlet-name>Counter</servlet-name>
    <url-pattern>/counter/show</url-pattern>
    <url-pattern>/counter/display</url-pattern>
    <url-pattern>/counter/reset</url-pattern>
</servlet-mapping>

<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>

我认为,这是您查询的解决方案。