jsp页面之间的传值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp页面之间的传值相关的知识,希望对你有一定的参考价值。
从数据库里读出来了一条记录,转向了一个main页面(框架页面),但是main页面的子页面是用来做显示的,我怎么把这条记录传给他的子页面呢?是封装到session里或者request里吗?具体怎么做
参考技术A 对应封装数据传值来说,哪个都可以,只是要看你从数据库中读出来的数据是否需要持久化得保存了。request是将数据request.setAttribute("name",value)封装在请求中,并且必须要靠request.getRequestDispatcher(<!-- 你想要跳转的页面 -->).forward(request,response);跳转到另一个页面(不可用response.redirect),再用request.getAttribute("name")来获取封装的数据,数据持久性只在于 请求 响应 间。
而session是将数据封装在“会话”中,你用session.setAttribute("name",value)进行数据封装,再跳转到“你想跳转的页面”(用forward 或 response.redirect,那个都行),只要当前会话不结束,用session.getAttribute("name")都可以接收到。
知识共享,共同进步本回答被提问者采纳 参考技术B 不要转向main页面,使用target指定子页面追问
怎么做,转向是写在struts.xml配置文件里的,怎么使用target
追答页面里不是要指定action名称么,后面加tagert=,关于targert你再搜下
参考技术C request.setAttribute()和request.getAttribute()不就可以了吗参考资料:u
参考技术D 学习中如何解决 jsp 中url传值的中文乱码问题
在jsp中,如果在url中传递中文时会出现乱码,其实解决方法非常简单: 第一步:编码(以传递的参数为str为例) 在传递数据前将str进行编码Java.net.URLEncoder.encode(str) 第二步:解码 在获取数据端将得到的数据进行解码 new String(str.getBytes("ISO8859_1"))简单示例程序如下:
<%@ page contentType="text/html;charset=gb2312" %
<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("编码的是这里","GB2312")%"点击这里</a<%//request.setCharacterEncoding("GBK");
if(request.getParameter("url")!=null)str=request.getParameter("url");
//下面是解码
str=java.net.URLDecoder.decode(str,"GB2312"); 参考技术A 第一步:在tomcat 的server.xml文件中设置web服务器端口配制中加下面两句:
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
第二步:JSP页面编码用UTF-8(也可以用“gb2312",第一步与解码要一至)传值时编码一下:
以传递的参数为strPar为例, 在传递数据前将strPar进行编码java.net.URLEncoder.encode(strPar,"UTF-8");
第二步:解码 在获取数据服务器端Action中得到的strPar进行解码java.net.URLDecoder.decode(strPar,"UTF-8");
本人测试时传入action中可以不解码也正常。
举例:
Url传值:
<a href="myPage.jsp?strPar=<%=java.net.URLEncoder.encode("中文参数值","UTF-8")%>">点击这里</a>
//下面是解码
String cnStr=java.net.URLDecoder.decode(strPar,"GB2312"); 参考技术B 编码方式为utf-8时确实会url参数中文乱码问题,用gb2312问题就能解决,建议楼主在做参数传递的时候尽量不要传递中文
以上是关于jsp页面之间的传值的主要内容,如果未能解决你的问题,请参考以下文章