通过indexjsp页面以表单的形式提交Post请求传姓名年龄学号三个参数到HelloWordServlet当中HelloWordServlet获取Servlet context全局初始化参数context-param标签进行学校属性的初始化初始值为贵大。 随后将信息转发至ForwardServlet当中ForwardServlet获取Servlet参数初始化init-param进行班级属性的初始
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>
说明:
- 在index.jsp页面中,使用表单提交方式(method="post")将姓名、年龄、学号三个参数传递给HelloWordServlet。
- 在HelloWordServlet中,通过request.getParameter()方法获取表单中提交的参数值,并通过getServletContext().getInitParameter()方法获取全局初始化参数(学校属性)。
- 将获取到的参数值和学校属性设置为request的属性,然后通过RequestDispatcher的forward()方法将请求转发给ForwardServlet。
- 在ForwardServlet中,通过getInitParameter()方法获取Servlet参数(班级属性)。
- 在doGet()方法中,从request的属性中获取姓名、年龄、学号、学校和班级属性,并通过response.getWriter()方法将信息输出到页面上
原文地址: https://www.cveoy.top/t/topic/iYZu 著作权归作者所有。请勿转载和采集!