添加一个Java方法,要求该方法能处理以/logout结尾的Web请求,然后返回字符串GoodBye!
时间: 2024-11-13 18:41:16 浏览: 3
在Java中,你可以创建一个拦截器(Interceptor)或者过滤器(Filter)来处理特定的URL模式,如以`/logout`结尾的HTTP请求。这里我们演示如何通过Filter来完成这个任务:
```java
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
public class LogoutFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 获取当前请求对象
HttpServletRequest httpRequest = (HttpServletRequest) request;
// 检查URL是否以/logout结束
if (httpRequest.getRequestURI().endsWith("/logout")) {
// 如果是以/logout结尾,直接返回"GoodBye!"
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.getWriter().write("GoodBye!");
// 阻止后续链路继续处理请求
chain.doFilter(request, response); // 注:实际上在这种场景下,通常不会调用下一个Filter或Servlet
} else {
// 如果不是 logout 请求,正常转发到下一个Filter或Servlet
chain.doFilter(request, response);
}
}
@Override
public void init(FilterConfig filterConfig) {}
@Override
public void destroy() {}
}
```
在这个例子中,当接收到以`/logout`结尾的请求时,`doFilter`方法会立即响应并返回`GoodBye!`,而其他请求则按照正常的链路传递。
阅读全文