2013-06-02 3 views
0

Здравствуйте, я пытаюсь передать данные с сервлета на страницу jsp, но получаю null. Пожалуйста, скажите мне, где я ошибаюсь? Вот мой код:HttpServletRequest request.getAttribute() дает значение null на странице jsp

MyConnection.java

  public void doGet (HttpServletRequest inRequest, 
             HttpServletResponse outResponse) throws ServletException, 
             IOException { 
  
             inRequest.setAttribute ("ST", "QWERTY"); 
             RequestDispatcher dispatcher = inRequest.getRequestDispatcher ("/index.jsp"); 
  
             out.print ("\ n" + dispatcher); 
  
             dispatcher.forward (inRequest, outResponse); 
} 

index.jsp

<% @ page contentType = "text/html" pageEncoding = "UTF-8"%> 
<% @ page language = "java" import = "java.util. *"%> 
<! DOCTYPE html> 
<html> 
     <head> 
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
         <title> JSP Page </ title> 
     </ head> 
     <body> 
         <form action="MyConnection" name = "myForm" method="Get"> 
             <% = (String) request.getAttribute ("ST")%> 
             <% out.println (request.getAttribute ("ST"));%> 
         </ form> 
     </ body> 
</ html> 
+2

Вы, вероятно, вообще не вызываете сервлет и не переходите непосредственно к JSP. Проверьте адрес в адресной строке браузера. Кстати, путь JSP в сервлете, вероятно, неверен: я сомневаюсь, что имя файла JSP начинается с пробела. Кроме того, забудьте окончательно о сценариях. Используйте JSP EL и JSTL: '$ {ST}'. –

+0

Имя файла не начинается с пробела, это ошибка копии. Адрес в браузере следующий: "http: // localhost: 8080/WebApplication1/index.jsp" Мне нужны сервлеты, это задача) – user2430023

ответ

0

адрес в браузере адрес JSP, поэтому JSP выполняется. Чтобы выполнить сервлет, вы должны поместить адрес сервлета в адресную строку.