Как передать переменную из сервлета в jsp?
setAttribute
и getAttribute
не работали для меня: - (
Передать переменные из сервлета в jsp
Ответ 1
Вы можете установить все значения в объект ответа перед тем, как запросить jsp. Или вы можете поместить свои значения в сеанс bean и получить доступ к нему в jsp.
Ответ 2
Он не сможет работать, если:
-
Вы перенаправляете ответ на новый запрос на
response.sendRedirect("page.jsp")
. Разумеется, новый объект запроса, конечно, не будет содержать атрибутов, и они не будут доступны в перенаправленном JSP. Вам нужно перенаправить, а не перенаправить. Например.request.setAttribute("name", "value"); request.getRequestDispatcher("page.jsp").forward(request, response);
-
Вы обращаетесь к нему неправильно или используете неправильное имя. Предполагая, что вы установили его с помощью имени
"name"
, вы должны иметь доступ к нему на пересылаемой странице JSP следующим образом:${name}
Ответ 3
Простой способ, который я нашел,
В сервлет:
Вы можете установить значение и переслать его в JSP, как показано ниже
req.setAttribute("myname",login);
req.getRequestDispatcher("welcome.jsp").forward(req, resp);
В Welcome.jsp вы можете получить значения
.<%String name = (String)request.getAttribute("myname"); %>
<%= name%>
(или) непосредственно u может вызывать
<%= request.getAttribute("myname") %>.
Ответ 4
Используйте
request.setAttribute( "имя_атрибута" );
а затем
getServletContext() getRequestDispatcher ( "/file.jsp" ) вперед();..
Затем он будет доступен в JSP.
В качестве побочного примечания - в jsp избегайте использования java-кода. Используйте JSTL.
Ответ 5
Помимо использования атрибута для передачи информации с сервлета на страницу JSP, можно также передать параметр . Это делается просто путем перенаправления на URL-адрес, который указывает страницу JSP, о которой идет речь, и добавление механизма нормального параметра-сквозного URL-адреса.
Пример. Соответствующая часть кода сервлета:
protected void doGet( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
response.setContentType( "text/html" );
// processing the request not shown...
//
// here we decide to send the value "bar" in parameter
// "foo" to the JSP page example.jsp:
response.sendRedirect( "example.jsp?foo=bar" );
}
И соответствующая часть страницы JSP example.jsp
:
<%
String fooParameter = request.getParameter( "foo" );
if ( fooParameter == null )
{
%>
<p>No parameter foo given to this page.</p>
<%
}
else
{
%>
<p>The value of parameter foo is <%= fooParameter.toString() %>.</p>
<%
}
%>
Ответ 6
Это код сервлета, который содержит строковую переменную a. значение для a получается с html-страницы с формой.
затем установите переменную в объект запроса. затем передайте его в jsp с помощью методов forward
и requestdispatcher
.
String a=req.getParameter("username");
req.setAttribute("name", a);
RequestDispatcher rd=req.getRequestDispatcher("/login.jsp");
rd.forward(req, resp);
в jsp выполните следующие шаги, указанные ниже в программе
<%String name=(String)request.getAttribute("name");
out.print("your name"+name);%>
Ответ 7
Вы также можете использовать RequestDispacher и передавать данные вместе с необходимой вами страницей jsp.
request.setAttribute("MyData", data);
RequestDispatcher rd = request.getRequestDispatcher("page.jsp");
rd.forward(request, response);