У меня есть файл .jsp, который получает запрос и проверяет параметры запроса. В том же каталоге, что и этот файл JSP, находится файл error.jsp, который должен выполнять обработку ошибок. Если параметры нулевые, я хочу переслать запрос в файл error.jsp как в:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="ISO-8859-1"%>
<html>
<head></head>
<body></body>
<%
request.setCharacterEncoding("UTF-8");
String uid = request.getParameter("uid");
String procName = request.getParameter("procName");
//param check
if(uid == null || procName == null){ %>
<jsp:forward page="error.jsp"/>
<% }%>
</html>
Однако это не работает. После прямой линии я снова отправляю запрос в тот же JSP вместо error.jsp. В конце концов я получаю StackOverflowException из-за цикла на сервере.
Если вместо JSP: forward я использую response.sendRedirect (), как в:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="ISO-8859-1"%>
<html>
<head></head>
<body></body>
<%
request.setCharacterEncoding("UTF-8");
String uid = request.getParameter("uid");
String procName = request.getParameter("procName");
//param check
if(uid == null || procName == null){
response.sendRedirect("error.jsp");
}%>
</html>
все отлично работает. Почему jsp: forward не работает? Согласно этому сайту и API у меня установлены правильные теги.
PS .: JSP развернуты в JBoss AS с версией 4.0.5 GA.