Я делаю систему управления общежитием с бэкэндом на java. Я создал класс заголовка, который показывает меню, и я хочу, чтобы он был включен в каждый сервлет моего проекта. Я попытался использовать диспетчер запросов. так:
RequestDispatcher rd1 = req.getRequestDispatcher("/header");
rd1.include(req, res);
Когда я помещаю его в какой-либо сервлет, вывод этого сервлета удаляется (только тот вывод, который помещается после этой строки включения), и отображается только сервлет заголовка. Я перегрузил методы doGet() и doPost() в сервлете заголовка.
На следующем рисунке показано, что мой заголовок работает нормально.
Здесь приведен пример сервлета, в который я включаю сервлет заголовка.
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-форма не отображается в браузере. Отображается только заголовок, как показано на следующем снимке экрана.
Как я могу объединить вывод заголовка и любых других сервлетов в браузере?




есть Session Scope, есть Application Scope. Мне интересно, чего вы добиваетесь, это делиться некоторыми данными между разными сеансами. То что нужно Application Scope. Это Контекст сервлета. См. Использование переменных области приложения в java.
эй, @Qinfdei, я проверил ссылки, которые вы мне предоставили. Я собирался попробовать функцию addServlet(), но затем удалил только оператор close из сервлета заголовка. Тогда у меня все работало нормально.