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