servlet中传参方法总结

方法一<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

你可能感兴趣的:(servlet中传参方法总结)