Подтвердить что ты не робот

Передать переменные из сервлета в jsp

Как передать переменную из сервлета в jsp? setAttribute и getAttribute не работали для меня: - (

4b9b3361

Ответ 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);