servlet-filters - 提交响应后无法转发。即使在退货声明之后
问题描述
我被这个错误困住了。我做了一些搜索,我发现解决方案是添加 return 语句。但是,我仍然无法解决问题。请帮我。
这是我的代码:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
try {
HttpServletRequest req = (HttpServletRequest) request;
String uri = req.getRequestURI();
String url = LOGINPAGE;
int lastIndex = uri.lastIndexOf("/");
String resource = uri.substring(lastIndex + 1);
HttpSession session = req.getSession();
User user = (User) session.getAttribute("USER");
if (resource.length() > 0) {
if (user != null) {
if (resource.lastIndexOf(".png") > 0 || resource.lastIndexOf(".jpg") > 0) {
url = resource;
} else {
url = resource.substring(0, 1).toUpperCase() + resource.substring(1) + "Controller";
if (resource.lastIndexOf(".jsp") > 0 || resource.lastIndexOf(".html") > 0) {
url = resource;
} else {//new
url = resource.substring(0, 1).toUpperCase() + resource.substring(1) + "Controller";
}
}
} else {
request.setAttribute("ERRORNOTLOGIN", "You have no permission to access this function");
}
if (resource.equals("login")) {
url = "LoginServlet";
}
} else {
url = LOGINPAGE;
if (user != null) {
url = "ListController";
}
}
if (url != null) {
request.getRequestDispatcher(url).forward(request, response);
return;
} else {
chain.doFilter(request, response);
}
} catch (Exception e) {
log("ERROR at FilterDispatcher: " + e.getMessage());
}
}
解决方案
推荐阅读
- macos - 条带登录zsh:找不到命令:条带
- python - 有没有更有效的方法来使用 python 将 XML 解析为数据库?
- sorting - QUERY 函数需要显示文本,但我需要排序的数字
- c - 向客户端 C 广播服务器
- django - 在 Heroku 上部署 Django 应用程序时无法解决 ModuleNotFoundError
- java - 用 Java.awt.graphics 打印的图像模糊?
- flutter-dependencies - Flutter 通知侦听器 v2 示例不会运行
- python - 在 Docker 中使用 pip 安装无法找到模块
- html - 用反应滚动反应导航栏
- google-cloud-run - 如何在构建 Cloud Run 时清除 Kaniko 缓存