2012-07-25 138 views
0
<body> 
    <form action="testServlet.java"> 
    <TABLE border="0" align="center"> 
    <TR height="40"> 
     <TD width="40"><a href="Hoda/testServlet?direction=b"><img 
     src=<%=request.getAttribute("imgSrc")%> width="40" height="40" /></a> 
     </TD> 
    </form> 
</body> 

SERVLET:如何在jsp頁面中使用servlet?

@WebServlet("/testServlet") 
public class testServlet extends HttpServlet { 
    String imgSrc = "red.png"; 

    protected void service(HttpServletRequest reques,HttpServletResponse response) throws ServletException, IOException { 

     String str = request.getParameter("direction"); 

     if (str.startsWith("b")) { 
     imgSrc = "black.png"; 
     } 

     request.setAttribute("imgSrc", imgSrc); 
    } 
} 

在我的JSP頁面中,我創建了一個細胞我想從servlet來獲取其圖像源。我把鏈接標籤問servlet的imgSrc,但它不起作用。請告訴我如何使用servlet在JSP頁面中更改imgSrc。我希望JSP僅僅顯示結果,而不是派發到其他頁面。 這裏是我的代碼:

+0

定義「不起作用」。您必須單擊鏈接才能請求該servlet;你在做那個然後轉發到相同的jsp?看起來不像它 - 你確定你知道servlet和客戶端如何交互? – 2012-07-25 13:11:41

+0

對我來說它看起來不錯。除了表單動作是負責與servlet通信的,所以我不希望圖像加載,直到你按下按鈕或窗體上的某個東西,所以這個動作可以發生 – 2012-07-25 13:16:08

+0

@MoatazElmasry它呢?提交給源文件,以及指向不重定向或轉發的servlet的鏈接? – 2012-07-25 13:18:46

回答

0

您將不得不使用Servlet API的RequestDispatcher從Servlet轉發到JSP,以便處理髮生在相同的請求上,否則屬性將不會被設置。您也可以使用一些自定義包含邏輯,但通常您會將該servlet用作「前臺」,然後使用JSP來呈現內容。希望這是有道理的,你應該能夠在Servlet JavaDoc中跟蹤API。