Я делаю систему управления общежитием с бэкэндом на 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 из сервлета заголовка. Тогда у меня все работало нормально.