java web中jsp与servlet之间的跳转和传递参数

来源:互联网 发布:mysql持久化是什么 编辑:程序博客网 时间:2024/05/26 12:53

java web中jsp与servlet之间的跳转和传递参数

一、jsp跳转到servlet并传递参数:

在jsp中使用下列两种方式跳转到servlet

a> <jsp:forward page=“servlet的url-parrten”>(此时可以传递参数,也可以传递属性值)

1.通过page属性来传递参数值

在doXX()方法中使用request.getParameter("name")获取参数值

2.通过<jsp:param name=" " value=" ">来传递参数值

在doXX()方法中使用request.getParameter("name")获取参数值

3.在跳转之前设置属性-属性值的话,可以将属性-属性值传递到servlet中。

如在jsp中使用:<%request.setAttribute("name","liuanxin");%> 或者<%session.setAttribute("name","liuanxin");%>

然后:<jsp:forward page=“servlet的url-parrten”>

在servlet中使用:req.getAttribute("name") 或者session.getAttribute("name")便可以将属性值取出。

注意:因为使用forward跳转,jsp的request范围是servlet的request范围的子集。

b> response.sendRedirect(“servlet的url-parrten”)(此方法也可以传递参数,但不能传递属性值)

1.通过属性来传参数值

在doXX()方法中使用request.getParameter("name")获取参数值

2.在跳转之前设置属性-属性值的话,不能将属性-属性值传递到servlet中

注意:因为使用response.sendRedirect(" ")跳转,jsp和servlet的request不是同一个,所以不能用来传递属性值。

c> 通过浏览器地址栏来传参数值

在doXX()方法中使用request.getParameter("name")获取参数值。

二、servlet跳转到jsp并传递参数

在servlet的doXX()方法中调用下列语句跳转到jsp

a>resp.sendRedirect(req.getContextPath()+“/ ……” );(此时可以传递参数,但不能传递属性值)

1.通过属性来传递参数值

在jsp中使用request.getParameter("name")获取参数值。

注意: req.getContextPath()取出的是 /工程名,而http://127.0.0.1是自动添加的。

2.在跳转之前设置属性-属性值的话,不能将属性-属性值传递到jsp中

注意:因为使用response.sendRedirect(" ")跳转,jsp和servlet的request不是同一个,所以不能用来传递属性值。

b>this.getServletConfig().getServletContext.getRequestDipatcher(“/ ……”).forward(req,resp)

注意:此方法不能传参,但是能够传递属性值

1.在跳转之前设置属性-属性值的话,可以将属性-属性值传递到jsp中。

如在servlet中使用:req.setAttribute("name","liuanxin");%> 或者session.setAttribute("name","liuanxin");

然后:this.getServletContext.getRequestDipatcher(“/……”).forward(req,resp)

在servlet中使用:req.getAttribute("name") 或者session.getAttribute("name")便可以将属性值取出。

注意:因为使用forward跳转,servlet的request范围是jsp的request范围的子集。

c>this.getServletContext.getRequestDipatcher(“/……”).forward(req,resp)

注意:此方法不能传参,但是能够传递属性值

1.在跳转之前设置属性-属性值的话,可以将属性-属性值传递到jsp中。

如在servlet中使用:req.setAttribute("name","liuanxin");%> 或者session.setAttribute("name","liuanxin");

然后:this.getServletContext.getRequestDipatcher(“/……”).forward(req,resp)

在servlet中使用:req.getAttribute("name") 或者session.getAttribute("name")便可以将属性值取出。

注意:因为使用forward跳转,servlet的request范围是jsp的request范围的子集。

以上的a>、b>、c>中的“/”的后面跟上jsp页面所在的文件夹及.jsp文件。且“/”必须写。

0 0
原创粉丝点击