表单提交servlet使用过滤器filter+forward会返还2个表单。

今天学习filter遇到个奇怪的问题,搞了好久没弄好。
我写了个form表达提交到servlet里(这里就简写了不贴全部代码了)

这个是login.jsp表单

<form action="/code/Servletlogin">
    <input type="text" name="username" placeholder="username">
    <br>
    <input type="text" name="password" placeholder="password">

    <input type="submit" value="注册">
</form>

Servletlogin的servlet这样写

@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        request.setAttribute("msg","xixixixi.....");

        request.getRequestDispatcher("/login.jsp").forward(request,response);

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

这是过滤器默认所有请求过来都要先执行这个过滤器

@WebFilter(value = "/*")
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        chain.doFilter(req, resp);
        System.out.println("flter.....");

        chain.doFilter(req,resp);

//        System.out.println("返回...........");
    }

请求的奇怪的事情发生了,为什么2个表单。。。。。

clipboard.png

阅读 1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题