導航:首頁 > 文件目錄 > 窗口傳值怎麼傳文件內容

窗口傳值怎麼傳文件內容

發布時間:2024-01-09 07:39:28

Ⅰ 怎樣java中傳值給頁面

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

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

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

servlet使用RequestDispatcher到jsp頁面
String url="/EShop.jsp";
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher(url);
rd.forward(req, res);

servlet重定向jsp,並將數據發送到別一個JSP中:
request.setAttubute("messages",aaa);
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/jsp/testbean.jsp");
requestDispatcher.forward(request,response);
3.7、Servlet跳轉
從JSP跳轉到Servlet可以實現,通過表單提交或超鏈接可以做到,但是現在如果從一個Servlet跳轉到JSP呢?
• HttpServletResponse對象,此對象可以完成跳轉:public void sendRedirect();
JumpServlet.java:
package org.lxh.demo ;
import javax.servlet.* ;
import javax.servlet.http.* ;
import java.io.* ;
public class JumpServlet extends HttpServlet{
public void init() throws ServletException{
}
public void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,java.io.IOException{
resp.sendRedirect("jump.jsp") ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,java.io.IOException{
this.doGet(req,resp) ;
}
public void destroy(){
}
};
web.xml:
<servlet>
<servlet-name>jump</servlet-name>
<servlet-class>org.lxh.demo.JumpServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jump</servlet-name>
<url-pattern>/jump</url-pattern>
</servlet-mapping>
以上實現了跳轉的功能,但是跳轉之後,發現地址欄已經改變了,所以此跳轉稱為客戶端跳轉。如果此時假設一個Servlet要向JSP中傳遞屬性,那麼應該使用session范圍。
JumpServlet.java:
public void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,java.io.IOException{
request.getSession().setAttribute("name","hello") ;
resp.sendRedirect("jump.jsp") ;
}
jump.jsp:
<h1><%=session.getAttribute("name")%></h1>
此時,發現可以通過session屬性范圍傳遞內容,但是如果現在傳遞的內容很多,而程序中使用session范圍的話則肯定會帶來額外的性能降低,但是此時,這些值只使用一次顯示,那肯定沒有必要使用session對象,最好使用request范圍。如果request屬性范圍也有一個限制,必須是伺服器端跳轉,在JSP中使用<jsp:forward>語句完成,但是在servlet中呢?就只能使用RequestDsipatcher介面完成,實際上<jsp:forward>語句也是使用包裝了此種應用,既然RequestDispatcher是一個介面,所以必須通過其他方式實例化,通過request對象完成。
JumpServlet.java:
public void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,java.io.IOException{
req.setAttribute("name","hello") ;
// 准備跳轉到此頁面
RequestDispatcher rd = req.getRequestDispatcher("jump.jsp") ;
// 把所有的請求向下繼續傳遞
rd.forward(req,resp) ;
}
注意:
當需要傳遞request屬性范圍的時候才使用伺服器端跳轉。如果不需要傳遞,則可以選擇任意的跳轉方式。
但是一般情況下都使用RequestDispatcher進行跳轉,而且一定要記住的時候,跳轉之後頁面地址不會有任何的變化。

閱讀全文

與窗口傳值怎麼傳文件內容相關的資料

熱點內容
如何使用鑒定app 瀏覽:323
拆遷網站補貼是多少錢 瀏覽:22
輕紡大數據與會計是哪個學院 瀏覽:280
怎麼儲存手機qq群視頻文件在哪裡 瀏覽:855
win10在gpt格式下 瀏覽:212
xml如何關聯html文件 瀏覽:740
怎麼刪除目錄鏈接文件 瀏覽:842
svn怎麼把文件夾上面的勾去掉 瀏覽:872
qq壓縮包是什麼文件 瀏覽:312
蘋果如何給相冊加密文件 瀏覽:993
同一把刀怎麼編程對刀 瀏覽:114
5s上的qq打不開 瀏覽:676
兩個數互質編程怎麼寫 瀏覽:504
磁帶庫中的文件如何查看 瀏覽:912
好多大數據為什麼沒有中通 瀏覽:22
網站是怎麼被掛馬 瀏覽:937
linuxvictrlc 瀏覽:633
文件名稱顏色設置軟體 瀏覽:464
ieee14節點潮流計算matlab程序 瀏覽:14
長豐網站建設多少錢一年 瀏覽:287

友情鏈接