java-servlet-转发AND路径(详解)

下面是对应的完整攻略:

下面是对应的完整攻略:

Java Servlet 转发和路径详解

什么是 Servlet 转发?

Servlet 转发是指一个 Servlet 将请求转发到另一个 Servlet(或 JSP、HTML等)进行处理,并将处理结果返回给客户端。在转发时,客户端并不知道请求被转发到了哪里,所以转发时可以使用相对路径,不一定非得使用绝对路径。

Servlet 转发示例

假设有两个 Servlet,一个是处理登录的 LoginServlet,另一个是处理个人信息的 ProfileServlet。在用户登录成功后,需要将用户的信息传递给 ProfileServlet 进行处理,然后展示用户的信息。

  1. 用户向 LoginServlet 提交登录请求。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 获取用户名和密码
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    // 模拟用户登录成功
    if (username.equals("admin") && password.equals("123456")) {
        // 将用户信息设置到 request 中
        request.setAttribute("username", username);
        request.setAttribute("age", 20);

        // 转发到 ProfileServlet
        request.getRequestDispatcher("/profile").forward(request, response);
    } else {
        response.getWriter().write("Login Failed");
    }
}
  1. LoginServlet 将请求转发到 ProfileServlet。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 获取用户名和年龄
    String username = request.getParameter("username");
    int age = Integer.parseInt(request.getParameter("age"));

    // 输出用户信息
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    out.write("<html>");
    out.write("<head><title>Profile</title></head>");
    out.write("<body>");
    out.write("<h2>Welcome " + username + "</h2>");
    out.write("<p>Your age is " + age + "</p>");
    out.write("</body>");
    out.write("</html>");
}

什么是 Servlet 路径?

Servlet 路径是指在 Servlet 应用中,各个 Servlet 的访问路径。例如,一个 Servlet 的路径是 /login,那么访问这个 Servlet 的 URL 应该是 http://localhost:8080/login。

Servlet 路径示例

假设有两个 Servlet,分别是处理登录的 LoginServlet 和处理个人信息的 ProfileServlet。它们的路径分别为 /login 和 /profile。在访问渲染个人信息的 ProfileServlet 时,需要在请求路径中传递用户名和年龄两个参数。

  1. 发送 GET 请求,访问 ProfileServlet。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 获取用户名和年龄
    String username = request.getParameter("username");
    int age = Integer.parseInt(request.getParameter("age"));

    // 输出用户信息
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    out.write("<html>");
    out.write("<head><title>Profile</title></head>");
    out.write("<body>");
    out.write("<h2>Welcome " + username + "</h2>");
    out.write("<p>Your age is " + age + "</p>");
    out.write("</body>");
    out.write("</html>");
}
  1. 在浏览器地址栏输入访问路径。
http://localhost:8080/profile?username=admin&age=20
  1. 输出用户信息。
Welcome admin
Your age is 20

以上就是 Java Servlet 转发和路径的详细讲解和示例说明,希望对你有所帮助。

本文标题为:java-servlet-转发AND路径(详解)

基础教程推荐