jsp與Servlet之間傳值

jsp與Servlet之間傳值分爲四種,Servlet向jsp頁面傳值,jsp向Servlet傳值,Servlet之間傳值,jsp之間傳值.

一:Servlet向jsp頁面傳值

1,利用request這個對象在Servlet中設置鍵值對,在jsp頁面通過鍵獲取值,

request.setAttribute("key", value);

key代表鍵,是一個字符串,jsp頁面通過這個字符串可以獲取值,注意key一定要一致

<%  
String s =(String)request.getAttribute( "key");  
%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String errorKey =(String)(request.getAttribute("errorKey")==null?"":request.getAttribute("errorKey"));
String demoKey =(String)(request.getAttribute("demoKey")==null?"default_demo":request.getAttribute("demoKey"));
String imageUrl = basePath+"chartJson?parameter="+demoKey;
%>

注意通過request獲取到的值是Object類型的需要強轉,還有就是用這種方法不能用重定向到jsp頁面,要用轉發

request.getRequestDispatcher("/…….jsp").forward(request, response);

2,利用跳轉Servlet,

response.sendRedirect("/…….jsp?username="+username); 

jsp頁面:

<%  
        String s = (String) request.getParameter("username");  
    %> 

二:jsp向Servlet傳值

1,通過超鏈接傳值
jsp頁面:

<a href="JspServlet?action=toServlet">click me</a>  

Servlet代碼:

String d = request.getParameter("action"); 

2,通過form表單傳值
jsp頁面:

<!--<form action="JspServlet?action=toServlet" method="post" name="form"> -->
<form action="LoginServlet">
    <input type="text" name="username">  
    <input type="text" name="password">  
    <input type="submit" value="登錄">  
</form> 

Servlet代碼:

String username = request.getParameter("username");  
String password = request.getParameter("password");

3,還可以通過java代碼傳值,不建議這麼寫,在後期維護很麻煩

三:Servlet之間傳值

1,通過session對象,一個瀏覽器就是一個會話,使用兩個瀏覽器無法獲得值

HttpSession session = request.getSession();  
session.setAttribute("user", user);

先獲取session對象在把值通過鍵值對傳輸

HttpSession session = request.getSession();  
User user = (User) session.getAttribute("user");  

2,直接跳轉,和Servlet向jsp頁面傳值一樣在跳轉文件後面添加值

response.sendRedirect("BServlet?username=qu"); 

接收:

request.getParameter("username");

四:jsp之間傳值:
傳輸:

<%  
request.setAttribute("username","username");  
%>  
<jsp:forward page="demo2.jsp"/>  

接收:

<%  
String username = (String)request.getAttribute("username");  
%> 
其實用的是java代碼,注意要用轉發
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章