站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题servlet获取页面参数问题

servlet获取页面参数问题

摘要: servlet获取页面参数问题


因为没有系统的学习,只是从代码入手,摸了半天自己总结,希望大家觉得有误的地方指出.

页面跳转:
request.getdispatcher.forward()一种
还有response.sendredect("zzz.jsp");这个是在dopost写代码.
如果是response.sendredect("zzzServlet");如果是这个就需要转到servlet动作在doget里写代码

其中获取参数呢,页面jsp提交后到servlet,servlet的dopost方法里获取页面参数可以用request.getparmeter(),然后在request.setattribute把要用的参数传给下个页面,然后下个页面用<%request.getattribute()%>获取从servlet里的参数,从而达到jsp显示页面,servlet 处理数据.

回到我的问题上来:
我有个登陆页面,login.jsp登陆到loginservlet后转到loginsucces.jsp,其中我在login.jsp里的一个<input type="txt" name="txtname">的姓名,在longinservlet里可以request.getparmeter("txtname")得到,然后在loginsucces.jsp显示个登陆成功,在loginsucess.jsp里有个连结查询,xxServlet里要用到login.jsp里客户输入的姓名,我就不知道怎么传过来了,
说简单点就是页面与页面之间传参问题到底有哪些,有时候自己描述问题都觉得有问题,但总感觉还没上路,害怕一下子参数到哪里就停了.


放到session当中就可以了。


在servlet里怎么用session,servlet里不只有resquest和response吗?

没人么


一个页面到另外一个页面传参之用直接在页面用request.getparmeter()就可以了。Serverlet也一样,本身JSP页面就是 Serverlet编译组合出来的。
你想把第一个页面的传参作为第二个页面的传参,用


可以看出楼主应该是初学,servlet里面取session是根据url请求request来的,HttpSession session=request.getSession(true);

你下面那种情况的话,你可以把用户登陆信息,也就是用户名在用户登陆时(longinservlet),放到session中(session.setAttribute("userName",userName)),xxServlet中只要session.getAttribute("userName");

request.getdispatcher.forward()就是将当前请求传递到下一个servlet或者jsp中,而response.sendredect("zzz.jsp");就是结束当前请求,进行转发,request中的信息已经消失


第一,你写servlet的时候,业务不应放在doPost/doGet中,而应该放入xxx方法,由前二者共同去调用

之所以会有你所述的问题,是因为你没有理解forward和redirect的区别

forward(转发,还有一个叫include),是服务器内部的,整个是一次request。所以是request.getDispatcher()

redirect(重订向)是服务器在接受第一个request之后,向对应的第一个response里面发出的指令,让浏览器,继续发出一个新的request,到指定的url(甚至是不同服务器)所以是response.sendRedirect()。由于http默认的是get方式(HTML代码中的,,也都是get),所以只有doGet有效。

两者从IE上直接就可以看出区别,forward,url一直是第一个,而redirect会在接受服务器重订向指令后变成第二个


↑返回目录
前一篇: 关于下拉框的问题
后一篇: jsp中如何获取客户端浏览器信息