我目前有一个按钮可以重置我的点击计数器程序。我想要做的是,如果您将/counter/reset 键入您的 URL,它就会以相同的方式发挥作用。下面是我的 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>"); 
        } 
    } 
} 

请您参考如下方法:

将您的 Counter.java 和 web.xml 替换为

计数器.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)类计数器扩展 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> 

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


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!