我正在用java制作一个带有后端的宿舍管理系统。我创建了一个显示菜单的 header 类,我希望它包含在我项目的每个 servlet 中。我尝试过使用请求调度程序。像这样:
RequestDispatcher rd1 = req.getRequestDispatcher("/header");
rd1.include(req, res);
当我将它放在某个 servlet 上时,该 servlet 的输出将被删除(仅放置在此包含行之后的输出),并且仅显示 header servlet。我在 header servlet 中重载了 doGet()
和 doPost()
方法。
The Following picture shows that my header is working fine
此处是一个示例 servlet,其中包含 header servlet。
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class add extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws IOException,ServletException
{
PrintWriter out = res.getWriter();
res.setContentType("text/html");
out.println("<html><head><title>Add student</title></head>");
RequestDispatcher rd1 = req.getRequestDispatcher("/header");
rd1.include(req, res); //I want to show the data after this line as well
out.println("<form method='post' action='addtoDatabase'>");
out.println("Roll Number : <input type='text' name='roll' placeholder='student Roll Number'><br>");
out.println("Name : <input type='text' name='studentName' autofocus placeholder='student name'><br>");
out.println("room number : <input type='text' name='roomNumber' placeholder='Room Number'><br>");
out.println("Address : <input type='text' name='address' placeholder='Address'><br>");
out.println("Phone : <input type='text' name='phone' placeholder='03001234567'><br>");
out.println("<input type='submit' value='Add Student'> ");
out.println("</form></body></html>");
out.close();
}
}
在上面的代码中,HTML表单没有在浏览器上显示。仅显示标题,如下面的屏幕截图所示。
如何在浏览器上组合 header 和任何其他 servlet 的输出?
最佳答案
有 session 范围
,也有应用程序范围
。我想知道您在不同 session 之间共享一些数据所实现的目标是什么。也就是说,您需要应用程序范围
。即ServletContext ,请引用Using application scope variables in java
关于java - 合并两个 java servlet 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56385121/