一、JSP向Servlet傳值
JSP向Servlet傳值的方式有三種:URL后面跟參數、form表單提交、在JSP內置對象Session設置值。
- URL后面跟參數
JSP文件:<a href="Receive?name=xiaoijing&password=123456">click me</a>
Servlet文件:String name=request.getParameter("name");
說明:href="Receive?name=xiaoijing&password=123456",Receive為請求的目的地(URL),"?"后面跟參數,name為參數名,xiaojing為參數值,多個參數用"&"隔開,在servlet中是通過request.getParameter("參數名")獲取的,注意request.getParameter("參數名")獲取的所有值都是字符串。
- form表單提交
JSP文件:
<form action="Send" method="post">
<input type="text" name="account" />
<input type="submit" value="提交"/>
</form>
Servlet文件:String account=request.getParameter("account");
說明:<form action="Send" method="post">:action后面跟請求的目的地(URL),method請求方法常用的有get和post。<input type="text" name="account" />:傳遞的參數必須有name的屬性,不然在servlet找不到該參數。
-
在JSP內置對象Session設置值
JSP文件:
<%
session.setAttribute("school", "dgut");
request.setAttribute("name", "xiao"); //servlet無法獲取該參數
%>
Servlet文件:
String school=(String) request.getSession().getAttribute("school");
說明:servlet只能接受到到session.setAttribute("school", "dgut")傳來的值,無法接收到request.setAttribute("name", "xiao")傳來的值,在servlet通過 request.getSession().getAttribute("school")獲取參數值。
二、Servlet向JSP傳值
servlet向JSP傳值有兩種方法:重定向和URL轉發。
- 重定向:
servlet文件:
response.sendRedirect("https://www.baidu.com");//重定向到web應用外部
response.sendRedirect("Receive");//重定向到web應用內部,URL前面沒有“/”,默認在應用根目錄下面
response.sendRedirect("/Monitor/Receive");//重定向到web應用內部,URL以根開頭的,前面必須以應用開始
說明:重定向是路徑的跳轉,重定向完成后,瀏覽器會重新發起新的請求,上一次的參數無法轉發。
- URL轉發
servlet文件:
String url="/JspGetServlet.jsp";//URL必須以“/”開頭
//ServletContext sc=getServletContext();
//RequestDispatcher requestDispatcher=sc.getRequestDispatcher(url); //通過ServletContext 獲取轉發器
RequestDispatcher requestDispatcher=request.getRequestDispatcher(url);//通過request獲取轉發器
requestDispatcher.forward(request, response);
JSP文件:
<%=request.getParameter("account") %> //通過內置對象request獲取
${param.account} //通過EL表達式獲取