2015-04-06 136 views
0

我有發送servlet到JSP的問題JSP和發送對象

我有「web.xml」。

<servlet> 
    <description></description> 
    <display-name>optimalizace5</display-name> 
    <servlet-name>optimalizace5</servlet-name> 
    <servlet-class> 
BucketServlet2 
</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>optimalizace5</servlet-name> 
    <url-pattern>/optimalizace5</url-pattern> 
    </servlet-mapping> 

和BucketServlet2:

public class BucketServlet2 extends HttpServlet{ 

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse resp) 
     throws ServletException, IOException { 

    request.getSession().setAttribute("vysledek_list", "10101101"); 
    getServletContext().getRequestDispatcher("/optimalizace4.jsp").forward(request, resp); 
    super.doPost(request, resp); 
    } 
} 

和JSP:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Optimalizační úlohy</title> 
</head> 
<body> 
<FORM action="/Eliminace_kosiku/optimalizace5" method="post"> 

Data: 

<%=request.getParameter("vysledek_list")%> 

</form> 
</body> 
</html> 

對於從JSP發送到Servlet是工作。但是從servlet發送到JSP不起作用。我不知道,怎麼了?

+0

請指明您的問題。 '從servlet到JSP不工作'是不明確的。 – Masudul 2015-04-06 11:10:58

+0

<%= request.getParameter(「vysledek_list」)%>返回null。並且返回必須是「10101101」。 – user3640712 2015-04-06 11:23:36

回答

0

getParameter取URL參數值。在Servlet設置在會議的價值,所以,你應該使用session.getAttribute代替getParameter

<%=request.getSesstion().getAttribute("vysledek_list")%> 

還有一點,當你用forward方法在Servlet的這麼request.setAttribute足以值傳遞給JSP頁面。您不應該在session處存儲臨時值(即相同的請求)。因此,將值設置爲request而不是像下面那樣的session

request.setAttribute("vysledek_list", "10101101"); 
+0

它正在工作。非常感謝。:) – user3640712 2015-04-06 14:36:03

+0

@ user3640712,如果工作,你應該[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)的答案。 – Masudul 2015-04-06 15:10:44

+0

我不能。 「投票需要15點聲望」:( – user3640712 2015-04-07 09:59:45

1

您正在將價值放入session,而不是請求對象。

request.getSession().setAttribute("vysledek_list", "10101101"); 
//  ^setting attribute in session object. 

所以你需要從jsp中的會話對象中取出值。

會議在JSP隱對象,這樣你就可以直接使用它像

<%=session.getAttribute("vysledek_list")%> 

注:不要忘了,如果你不進一步需要從會議中刪除。

<%session.removeAttribute("vysledek_list");%> 

的另一種方法:參照this

你可以改變下面一行放在doPost方法

request.getSession().setAttribute("vysledek_list", "10101101"); 

的代碼

request.setAttribute("vysledek_list", "10101101"); 

更新: 加在第二種方法,在JSP中使用getAttribute方法代替的getParameter方法。

<%=request.getAttribute("vysledek_list")%> 
+0

我嘗試了它,但仍然是變量null。 – user3640712 2015-04-06 14:28:57

+0

你試過兩種方法嗎? – 2015-04-06 15:22:01

+0

@ user3640712,我已經更新了我的答案,看看它。 – 2015-04-07 06:53:51