1. 程式人生 > >JSP傳遞引數給servlet的三種方法

JSP傳遞引數給servlet的三種方法

Jsp與Servlet之間的傳值有兩種,一種是Jsp傳值給Sevlet,另一種是Servlet傳值給Jsp;使用request、response物件完成傳值,具體實現如下:

1.JSP傳值給Servlet

JSP傳值給Servlet有幾種形式:Form表單傳值,url傳值,其他方式傳值

a、form表單傳值:

JSP頁面有:<input type="radio" name="staffdepartment" value="1" id="department1" />,將department的id傳到Sevlet

中,在程式中如下:ServletRequest request;String staffdepartment=request.getParameter

("staffdepartment");可獲取jsp傳的department,但要獲取id還要進行轉化:int int_staffdepartment=Integer.parseInt(staffdepartment);

b、url傳值

比如這裡的 <a>標籤的 href屬性與 <form>標籤的 action屬性的值 "JspServlet?action=toServlet",在 servlet同樣用 request.getParameter("action")獲取;

c、java程式碼傳值

java片段程式碼,servlet只能接到 session.setAttribute

("testSession","Hello session")的內容,而接不到 request的內容。在 servlet裡用 request.getSession().getAttribute("testSession")獲取 session內容。

2.Servlet傳值給Jsp

具體實現如下:

java程式碼:String   a= "abccdefg "; 
             request.setAttribute( "ValueA ",a); 
             request.getRequestDispatcher( "網址/jsp頁面 ").forward(request,response); 

jsp頁面:

<%

String   s   =(String)request.getAttribute( "ValueA ");

%>

jsp頁面就可以取出Servlet的值。

3.從servlet到jsp的方法

從 servlet轉到 jsp不外乎兩種方法,重定向 和 url轉發

a、重定向 ( Redirect):是路徑的跳轉,內容和 url都改變。不允許帶 request引數( session引數可以),即不允許在servlet裡給 request物件使用setAttribute方法傳給下一頁面。在 servlet裡使用 response.sendRedirect(url) 方法。注意這裡的 url前不帶斜線 /,如 response.sendRedirect(”test.jsp“)

b、url轉發 ( Forward):是頁面的跳轉,頁面內容發生改變,url不變。可以帶 request和 session引數。在 servlet裡使用 getServletConfig().getServletContext().getRequestDispatcher(url).forward(request, response)。而這裡的url前需要帶斜線 /,如getServletConfig().getServletContext().getRequestDispatcher(”/test.jsp“).forward(request, response)

4、從jsp到servlet的方法

a、表單:post方法提交表單

b、連結:url方式(帶引數)

參考:

JSP與Servlet之間傳值 - CSDN部落格
http://blog.csdn.net/zumtz/article/details/6636639