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

窗口傳值怎麼傳文件內容

發布時間: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進行跳轉,而且一定要記住的時候,跳轉之後頁面地址不會有任何的變化。

閱讀全文

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

熱點內容
網路中常用的傳輸介質 瀏覽:518
文件如何使用 瀏覽:322
同步推密碼找回 瀏覽:865
樂高怎麼才能用電腦編程序 瀏覽:65
本機qq文件為什麼找不到 瀏覽:264
安卓qq空間免升級 瀏覽:490
linux如何刪除模塊驅動程序 瀏覽:193
at89c51c程序 瀏覽:329
怎麼創建word大綱文件 瀏覽:622
裊裊朗誦文件生成器 瀏覽:626
1054件文件是多少gb 瀏覽:371
高州禁養區內能養豬多少頭的文件 瀏覽:927
win8ico文件 瀏覽:949
仁和數控怎麼編程 瀏覽:381
項目文件夾圖片 瀏覽:87
怎麼在東芝電視安裝app 瀏覽:954
plc顯示數字怎麼編程 瀏覽:439
如何辨別假網站 瀏覽:711
寬頻用別人的賬號密碼 瀏覽:556
新app如何佔有市場 瀏覽:42

友情鏈接