gpt4 book ai didi

java - 使用过滤器在登录尝试失败后重定向

转载 作者:行者123 更新时间:2023-12-02 02:05:39 25 4
gpt4 key购买 nike

我正在使用 Java 过滤器来测试身份验证。如果用户输入正确的用户 ID 和密码组合,过滤器就会有效地将它们转发到 servlet。但是,如果输入了错误的信息,则用户将被发送回他们原来的登录页面。由于某种原因,当它们被发送回登录页面时,会显示“login.html”文件的代码。这是过滤器的代码:

package com.simpleServletDemo;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;

/**
*
* @author Not Important
*/
@WebFilter("/MyFilterChecker")
public class MyFilterChecker implements Filter {


public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {

String userID = request.getParameter("txtUser");
String password = request.getParameter("txtPassword");

PrintWriter out = response.getWriter();

if (userID.equals("notimpotant@gmail.com") && password.equals("password12345")) {
out.print("Success!");
chain.doFilter(request, response); //Sends Request and response to next resource
} else {
out.print("Incorrect Username or Password!");
RequestDispatcher dispatcher = request.getRequestDispatcher("login.html");
dispatcher.include(request, response);
}
}


public void destroy() {
}


public void init(FilterConfig filterConfig) {

}
}

我哪里出错了?谢谢!

我还包含了 web.xml 文件来显示映射:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
<servlet-name>MyLoginServlet</servlet-name>
<servlet-class>com.simpleServletDemo.MyLoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyLoginServlet</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
<filter>
<filter-name>MyFilterChecker</filter-name>
<filter-class>com.simpleServletDemo.MyFilterChecker</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilterChecker</filter-name>
<url-pattern>/Login</url-pattern>
</filter-mapping>
</web-app>

最佳答案

将您的dispatcher.include()方法更改为dispatcher.forward()方法。您还可以使用response.redirect()方法转发到login.html文件。

关于java - 使用过滤器在登录尝试失败后重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50843388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com