index.jsp页面代码:

<html>
<head>
    <title>Submit Form</title>
</head>
<body>
    <form method="post" action="HelloWordServlet">
        <label for="name">姓名:</label>
        <input type="text" name="name" id="name">
        <br>
        <label for="age">年龄:</label>
        <input type="text" name="age" id="age">
        <br>
        <label for="studentId">学号:</label>
        <input type="text" name="studentId" id="studentId">
        <br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

HelloWordServlet代码:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class HelloWordServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        String studentId = request.getParameter("studentId");
        
        // 获取全局初始化参数
        ServletContext context = getServletContext();
        String school = context.getInitParameter("school");
        
        // 设置属性
        request.setAttribute("name", name);
        request.setAttribute("age", age);
        request.setAttribute("studentId", studentId);
        request.setAttribute("school", school);
        
        // 转发至ForwardServlet
        RequestDispatcher dispatcher = request.getRequestDispatcher("ForwardServlet");
        dispatcher.forward(request, response);
    }
}

ForwardServlet代码:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class ForwardServlet extends HttpServlet {
    private String className;

    public void init() {
        // 获取初始化参数
        className = getInitParameter("class");
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = (String) request.getAttribute("name");
        String age = (String) request.getAttribute("age");
        String studentId = (String) request.getAttribute("studentId");
        String school = (String) request.getAttribute("school");

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html><head><title>Student Information</title></head><body>");
        out.println("<h1>学生信息</h1>");
        out.println("<p>姓名: " + name + "</p>");
        out.println("<p>年龄: " + age + "</p>");
        out.println("<p>学号: " + studentId + "</p>");
        out.println("<p>学校: " + school + "</p>");
        out.println("<p>班级: " + className + "</p>");
        out.println("</body></html>");
    }
}

在web.xml文件中配置Servlet context全局初始化参数和Servlet参数:

<web-app>
    <context-param>
        <param-name>school</param-name>
        <param-value>贵大</param-value>
    </context-param>
    
    <servlet>
        <servlet-name>HelloWordServlet</servlet-name>
        <servlet-class>HelloWordServlet</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>ForwardServlet</servlet-name>
        <servlet-class>ForwardServlet</servlet-class>
        <init-param>
            <param-name>class</param-name>
            <param-value>班级名称</param-value>
        </init-param>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>HelloWordServlet</servlet-name>
        <url-pattern>/HelloWordServlet</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>ForwardServlet</servlet-name>
        <url-pattern>/ForwardServlet</url-pattern>
    </servlet-mapping>
</web-app>

说明:

  1. 在index.jsp页面中,使用表单提交方式(method="post")将姓名、年龄、学号三个参数传递给HelloWordServlet。
  2. 在HelloWordServlet中,通过request.getParameter()方法获取表单中提交的参数值,并通过getServletContext().getInitParameter()方法获取全局初始化参数(学校属性)。
  3. 将获取到的参数值和学校属性设置为request的属性,然后通过RequestDispatcher的forward()方法将请求转发给ForwardServlet。
  4. 在ForwardServlet中,通过getInitParameter()方法获取Servlet参数(班级属性)。
  5. 在doGet()方法中,从request的属性中获取姓名、年龄、学号、学校和班级属性,并通过response.getWriter()方法将信息输出到页面上
通过indexjsp页面以表单的形式提交Post请求传姓名年龄学号三个参数到HelloWordServlet当中HelloWordServlet获取Servlet context全局初始化参数context-param标签进行学校属性的初始化初始值为贵大。 随后将信息转发至ForwardServlet当中ForwardServlet获取Servlet参数初始化init-param进行班级属性的初始

原文地址: https://www.cveoy.top/t/topic/iYZu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录