Как запустить сервлет перед запуском страницы JSP? - PullRequest
0 голосов
/ 04 мая 2020

Цель: у меня есть только одна страница, и при загрузке страницы она должна запускать запрос из сервлета и отображать все значения в индексе. jsp страница.

Существующая проблема: когда я отправляю страницу из Кнопка «Отправить» на другую страницу, она работает нормально, но когда я загружаю страницу index. jsp со значениями, это дает NullPointerException, потому что сервлет не запускался до индекса. jsp page.

My Servelet :

public class GetStudentController extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


        StudentDao sd = new StudentDao();  // model
        StudentInfo si = sd.getInfo();

        request.setAttribute("si", si);

        RequestDispatcher rd = request.getRequestDispatcher("display.jsp");
        rd.forward(request, response);
}
}

my JSP:

<body>
<form action="displayStud">         <--my servlet controller name -->
Student id <input type="text" name = "sid">
<button name="test" type="submit"">Primary Button</button>
</body>
</html>

<button type="submit" class="btn btn-primary" name="action" formaction="ddd" value="find">Test2</button>
    <!-- <input type ="submit" value ="Submit"> -->
</form>

У StudentDao есть запрос

Опять же: я просто хочу, чтобы он запускал тот же код при загрузке страницы и все данные должны загрузиться (без нажатия на кнопку отправки)

Спасибо за помощь

1 Ответ

0 голосов
/ 04 мая 2020

Вы можете использовать значение, установленное в области запроса, используя jstl или язык выражений.

request.setAttribute ("si", si);

Что-то вроде:

Student id <input type="text" name = "sid" value="${requestScope.si.id}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...