方法一<form action=url?參數(shù)=值></form> 1開(kāi)始說(shuō)第一個(gè)問(wèn)題,路徑問(wèn)題 .主要是form表單對(duì)應(yīng)的action里面的路徑和web.xml里面的url-pattern里面的路徑 下面說(shuō)明幾點(diǎn) (1)web.xml里面的url-pattern里面的servlet映射, <url-pattern>/ServletTest</url-pattern> 這里第一個(gè)"/"表示的是工程目錄.tomcat規(guī)定這里必須是"/"開(kāi)頭的.換句話(huà)說(shuō),這個(gè)"/"表示http://localhost:8080/ServletTest 這個(gè)目錄... (2)在action里面.表示的是映射到的action <form action="/ServletTest/ServletTest" method="get"> 這里有"/"表示的也是絕對(duì)路徑.但是這里的"/"表示的絕對(duì)路徑是http://localhost:8080 不包括后面的工程名.這兩個(gè)是不一樣的.當(dāng)然,你也可以寫(xiě)成相對(duì)路徑,那么只要是這樣 <form action="ServletTest" method="get"> 這里的相對(duì)路徑表示的是Parameter.jsp所在的目錄下的ServletTest這個(gè)映射.其實(shí)就是web.xml里面配置的那個(gè)url-pattern 我們必須明確,這里是action是要映射到誰(shuí)..這里的action不是要映射到servlet的class文件,而是要映射到web.xml里面配置的那個(gè)url-pattern...我們配置的是http://localhost:8080/ServletTest/ServletTest 所以,我們的action也要指向這個(gè)路徑.. 2 這里說(shuō)明了通過(guò)form表單給servlet傳遞參數(shù)的問(wèn)題.其實(shí)很簡(jiǎn)單,就是request.getParameter("...");.
方法二<a href="url?參數(shù)=值&參數(shù)=值"〉</a> <a href="getpass.jsp?uname=test">得到密碼</a> 解析:url后面加?可以傳好多參數(shù)。
方法三 重定向(response)<%response.sendRedirect("你要跳轉(zhuǎn)的url1")%> request.getParameter eg:客戶(hù)端發(fā)出URL:http://localhost:8080/jsp_04_servlet/servlet1?name=test 1)重定向request.getParamete("name")得到name=null; 2)請(qǐng)求分派 在servlet1。java中doPost()方法中的代碼改成如下片段 //獲取請(qǐng)求分派器: RequestDispatcher dispatcher=request.getRequestDispatcher("servlet2");//參數(shù):url //將請(qǐng)求轉(zhuǎn)發(fā)至指定路徑的資源 dispatcher.forward(request,response);//實(shí)現(xiàn)服務(wù)器端跳轉(zhuǎn),跳到url,帶本class的request和response 在servlet2中:request.getParamete("name")得到name=test;
方法四 請(qǐng)求域(request)屬性傳遞對(duì)象數(shù)據(jù) HttpServletRequest接口提供了幾個(gè)方法用來(lái)操作請(qǐng)求(request)中存儲(chǔ)的對(duì)象(String name,Object obj)。 (1)public void setAttribute(String name,Object obj); (2)public void getAttribute(String name,Object obj);都是成對(duì)出現(xiàn),才能實(shí)現(xiàn)一次響應(yīng)(請(qǐng)求-反應(yīng)) eg:pg116
|
|