方法一<form action=url?参数=值></form>
1开始说第一个问题,路径问题 .主要是form表单对应的action里面的路径和web.xml里面的url-pattern里面的路径
下面说明几点
(1)web.xml里面的url-pattern里面的servlet映射,
<url-pattern>/ServletTest</url-pattern>
这里第一个"/"表示的是工程目录.tomcat规定这里必须是"/"开头的.换句话说,这个"/"表示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传递参数的问题.其实很简单,就是request.getParameter("...");.
方法二<a href="url?参数=值&参数=值"〉</a>
<a href="getpass.jsp?uname=test">得到密码</a>
JSP里获取就用
<%
String delno=request.getParameter("uname");
//再查询问题,显示问题,然后输入答案,再提交到servlet去验证答案,再发送邮件就行了!
%>
解析:url后面加?可以传好多参数。
方法三 重定向(response)<%response.sendRedirect("你要跳转的url1")%>
request.getParameter
请求分派 <%request.getRequestDispatcher("url").forward(request,response)%>
request.getParameter
eg:客户端发出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");//参数:url
//将请求转发至指定路径的资源
dispatcher.forward(request,response);//实现服务器端跳转,跳到url,带本class的request和response
在servlet2中:request.getParamete("name")得到name=test;
方法四 请求域(request)属性传递对象数据
HttpServletRequest接口提供了几个方法用来操作请求(request)中存储的对象(String name,Object obj)。
(1)public void setAttribute(String name,Object obj);
(2)public void getAttribute(String name,Object obj);都是成对出现,才能实现一次响应(请求-反应)
eg:pg116