java servlet使用另一个java servlet的函数?

时间:2016-04-12 10:31:37

标签: java servlets

java servlet是否可以调用另一个java servlet中的函数?如果有可能,你能告诉我一个如何做的简单例子吗?

提前谢谢

4 个答案:

答案 0 :(得分:2)

不建议直接从另一个servlet调用servlet,这被认为是不好的做法,因为servlet实例由servlet容器管理。您应该遵循separation of concerns原则。

servlet仅负责与客户端的接口,不应包含业务逻辑。将业务逻辑放在单独的层中(例如,另一个包中的类),并仅从servlet调用它。因此,业务类负责实际的内部数据和转换,而servlet负责向外部提供不同的视图。

答案 1 :(得分:0)

有几种选择。

单向静止(我不喜欢)。

创建一个类并提供所需的参数并在每个servlet中创建实例。

答案 2 :(得分:0)

有点hackish的方式:

RequestDispatcher dispatcher = request.getRequestDispatcher("/someServletOfYours");
dispatcher.forward(request, response);

现在,在你的" someServletOfYours"的 doPost 中实现你的方法。类。如果需要传递参数,请调用ServletRequest的setAttribute方法,并从下一个servlet中的请求中获取参数。来自" someServletOfYourrs"您可以重定向回原始的servlet。它将通过http。

模仿方法调用

答案 3 :(得分:-1)

Servlet1

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Servlet1
 */
@WebServlet("/Servlet1")
public class Servlet1 extends HttpServlet {


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub

        Servlet2 s = new Servlet2();
        s.CreateUser();

        response.getWriter().append("Served at: ").append(request.getContextPath());
    }
}

Servlet2

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Servlet1
 */
@WebServlet("/Servlet2")
public class Servlet2 extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }


    public void CreateUser() throws FileNotFoundException{

        System.out.println("Create Users...");

    }
}

输出:

enter image description here