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

窗口傳值怎麼傳文件內容

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

閱讀全文

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

熱點內容
進什麼網站 瀏覽:588
修改了配置文件代碼沒有讀出來 瀏覽:749
vss資料庫是什麼 瀏覽:899
奇跡13單機系統找不到指定文件 瀏覽:719
flyme魅藍3以前的版本 瀏覽:318
安卓文件管理哪些文件夾可以刪除 瀏覽:290
安卓車載導航沒有聲音是怎麼回事 瀏覽:810
cjson數組格式 瀏覽:159
vb文件在哪裡 瀏覽:215
工廠里都招什麼編程人員 瀏覽:932
jspsql登錄 瀏覽:981
網路用語粉絲閱讀什麼意思 瀏覽:333
紅頭文件怎麼列印 瀏覽:94
熱血江湖130刺客升級 瀏覽:106
jsp頁面放大鏡技術介紹 瀏覽:101
網路編程udp 瀏覽:148
加密壓縮文件如何打開 瀏覽:56
微軟編程軟體有哪些 瀏覽:736
linux目錄中創建文件夾許可權設置密碼 瀏覽:759
word文檔正式文件模版 瀏覽:247

友情鏈接