Java 在Servlet类中创建方法是一种不好的做法吗?

Java 在Servlet类中创建方法是一种不好的做法吗?,java,jsp,servlets,Java,Jsp,Servlets,假设这是我的主控制器: import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.websocket.Sessi

假设这是我的主控制器:

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.websocket.Session;

public class MainController extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.getRequestDispatcher("/login.jsp").forward(request, response);
    }

    public void myMethod() {
         // my code
    }

}

如果这是一种不好的做法,你能解释一下原因吗?

没有什么能阻止你这样做。这都是关于你所遵循的架构。 在中,模型、视图和控制器(servlet)实际上是解耦的

明天,如果业务逻辑发生变化。模型(更具体地说是服务)是唯一受影响的层,其他两个组件不关心事件

这种解耦可以帮助您编写复杂的应用程序(桌面和web)


是编写应用程序时应该注意的另一个基本方面(除了DI IOC)

这不是坏习惯。servlet类是一个类。它的“servlet”方面并不意味着它的“类”/“代码单元”方面不适用。不过,它不太可能需要是公共的。你想把它从哪里调用?只要你考虑线程安全,就可以了。servlet中声明的方法应该是线程安全的。