怎么从servlet传递一个值,然后在一个jsp页面得到这个值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么从servlet传递一个值,然后在一个jsp页面得到这个值相关的知识,希望对你有一定的参考价值。

a.jsp是上传页面文件页面,提交到servlet页面,在servlet改变文件名字上传到服务器,上传完成后,跳转到b.jsp页面,并且把那个文件名传递到b.jsp页面,然后怎么在b.jsp页面得到这个值

这要看你的具体需求,你这个值是要在经过两次或两次以上跳转之后才获取,还是跳转一次之后就获取?
1.两次或两次以上的用session具体用法
servlet中:request.getSession().setAttribute("key",value); 都是以键值对的形式存取值
jsp中获取值:如果你是写在<%%>中那就这样子,这里不知道你是放的那种类型的值先用Object接收吧!
Object value = session.getAttribute("key");
如果你在jsp中没有嵌套<%%>那就直接 $key 用EL表达式直接取值
2.一次用rqeust的具体用法:
servlet中:request.setAttribute("key",value);
jsp中获取值:同上,如在<%%>中就,Object value = request.getAttribute("key");
如没有嵌套就直接 $key 用EL表达式直接取值!
------------------------------------------------------------------------------------------------------------
如果想明白为什么这样做你可以看看内部跳转和重定向跳转的知识以及EL表达式和JSTL的知识。
参考技术A 假如servlet页面改变 后的名字为:小明
在servlet中:request.setAttribute("name",“小明");
request.getRequestDispatcher("b.jsp?").forward(request,response);//跳转到b.jsp页面并传递request值
在b.jsp页面:String s_name=(String)request.getAttribute("name");
参考技术B b.jsp中用
<%=变量%>
这个变量,可以是Session中的值,也可以是其它的,如 request.getParameter("")
参考技术C 直接用session来传值就行啦,不懂继续追问! 参考技术D 还是requset好点吧本回答被提问者采纳

servlet中能够相互传值吗

在网上怎么查不到相关的信息呢?
通过SERVLET_A从数据库中取得信息。
然后再跳转到另一个SERVLET_B中去、
再通过SERVLET_B跳转到一个页面中、
并且在这张页面中加载相关有效数据。
这样的思想能够实现吗?

Sverlet相互传值可以使用跳转的形式,总共有两种,如下:
1) redirect方式[效率不高]
request和response没有传给目标页面
response.sendRedirect("/a.jsp");
页面的路径是相对路径。sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,如:
response.sendRedirect("URL");跳转后浏览器地址栏变化。
这种方式要传值出去的话,只能在url中带parameter或者放在session中,无法使用request.setAttribute来传递。
传值:HttpSession session =request.getSession();
session.setAttribute("bbbb", 1111111111);
取值:session.getAttribute("bbbb");

传值:RequestDispatcher rd =application.getRequestDispatcher("/queryResult.jsp?a="+000);
取值:request.getParameter("a")

2) forward方式[更多地使用此方法进行服务器端的跳转]
ServletContext application =this.getServletContext(); //this是这个页面
RequestDispatcher rd = application.getRequestDispatcher("/目标页面");
rd.forward(request, response);
Servlet页面跳转的路径是相对路径。forward方式只能跳转到本web应用中的页面上,跳转后浏览器地址栏不会变化。
使用这种方式跳转,传值可以使用三种方法:url中带parameter,session,request.setAttribute
传值:request.setAttribute("a", 00);
取值:request.getAttribute("a");

传值:HttpSession session =request.getSession();
session.setAttribute("bbbb", 1111111111);
取值:session.getAttribute("bbbb");

传值:RequestDispatcher rd =application.getRequestDispatcher("/queryResult.jsp?a="+000);
取值:request.getParameter("a");
getParameter()只能传递字符串,而setAttribute()/getAttribute()还可以传递对象
其次getParameter方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。
只能是页面发送到后台或者Web客户端传到Web服务器端
参考技术A session cookie

当cookie被禁用时可以用URL重写或隐藏表单域
参考技术B 可以,保存入session就可以咯。
reqeust也可以。

比如request.setAttribute("v1",v1);或者request.setParameter("v1",v1);方法

session.add();方法 //还是session.set();方法记不清了,总之就是这些个方法吧值放入session或request.在另一个页面:

request.getParameter("v1");//获得request中v1,具体的值就是你上面保存进去的本回答被提问者和网友采纳
参考技术C 用session保存 或者request保存咯!!

以上是关于怎么从servlet传递一个值,然后在一个jsp页面得到这个值的主要内容,如果未能解决你的问题,请参考以下文章

如何从jsp页面向后台传值?

在servlet中怎样获取jsp中下拉列表中的值

jsp button提交一个值到servlet

jsp页面之间的传值

jsp页面像action中传值问题,需要传递一个map

在servlet中从数据库中获取完整的行并使用bean类将它们传递给jsp