Как «скинуть» плохой запрос от JSP - PullRequest
2 голосов
/ 26 октября 2011

У меня есть очень простой файл JSP, в котором более или менее отображается переменная get.

<p>Hello, <%= request.getParameter("name") %></p>

Итак, если я перейду к webpage.jsp?name=Alice, я получу Hello, Alice.С другой стороны, если я просто перейду к webpage.jsp, я получу Hello, null.

Если переменная имени не задана, вместо этого я хотел бы отправить неверный запрос.В сервлете я бы сделал это:

  response.sendError(HttpServletResponse.SC_BAD_REQUEST);
  return;

Как я могу сделать то же самое со страницы JSP?

1 Ответ

4 голосов
/ 26 октября 2011

Просто поместите тот же код внутри <% %> в JSP.Вам нужно только убедиться, что ответ не передан в этот момент, иначе вы столкнетесь только с IllegalStateException s.Поэтому желательно, чтобы он вызывался в самом верху файла JSP до того, как будет выпущен весь контент HTML-шаблона.

Само собой разумеется, JSP является , а не подходящим местом для управленияответ на запрос.В этом конкретном случае вы хотели бы выполнить эту работу в сервлете или, возможно, фильтре , если это касается входа в сеанс.Далее, эту строку «Hello» лучше сделать как <p>Hello, <c:out value="${param.name}" /></p>.Это не только повышает удобство обслуживания, но и предотвращает огромную дыру XSS в вашем сайте.

...