我正在用Java开发一个带有后端的旅馆管理系统。我制作了一个显示菜单的标头类,希望将其包含在项目的每个servlet中。我尝试使用请求调度程序。像这样:
RequestDispatcher rd1 = req.getRequestDispatcher("/header");
rd1.include(req, res);
当我将其放在某个servlet上时,该servlet的输出将被删除(仅此输出放置在此include行之后),并且仅显示标头servlet。我已经在标头servlet中重载了doGet()
和doPost()
方法。
The Following picture shows that my header is working fine
这里有一个示例servlet,其中包括标头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表单未显示在浏览器上。如下面的屏幕快照所示,仅显示标题。
如何在浏览器中合并标头和其他任何servlet的输出?
答案 0 :(得分:0)
有Session Scope
,也有Application Scope
。我想知道您实现的目标是在不同的会话之间共享一些数据。那就是您需要Application Scope
。即ServletContext,请参考Using application scope variables in java