怎么在第二个jsp页面中读出从第一个jsp页面中传入的值。

Posted

tags:

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

我这是两个表,有主外键关系。传值都传不成功!报这样的错误:could not initialize proxy - the owning Session was closed ! 帮帮忙解决一下!
我的数据库表是主外键关系,我使用的是ssh框架,在我的jsp页面中进行传值,传入的值是表1的主键,但读取的信息是表2外键的信息。应该怎么做

1.jsp用了表单给2.jsp传值了?
比如
<form action="2.jsp">
<input type="text" name="user" />
</form>
那么2.jsp可以这样访问:
<%
String user = request.getParameter("user");
%>

至于你说的数据库表,和页面传值有啥关系啊……
不过1.jsp的session是不能直接在2.jsp里复用的,该初始化的东西都要初始化一遍
参考技术A JSP运行环境:
执行JSP代码需要在服务器上安装JSP引擎,比较常见的引擎有WebLogic和Tomcat。把这些支持JSP的web服务器配置好后。就可以再客户端通过浏览器来访问JSP页面了。默认端口一般是7001.
JSP生命周期:
JSP处理请求的方法就是把这些请求都统一看做Servlet。由于这个原因,JSP的很多功能和生命周期,都由Java Servlet技术标准定义的。这种限制,在动态内容方面更加明显。所以学习JSP的时候,需要温习Servlet的内容和标准。
JSP网络应用服务器框架:
在符合J2EE规范的服务器构建起来之后,就可以编写JSP页面了,在html页面中嵌入JSP脚本,该页面就成为JSP页面了。JSP脚本用特定的标记括起来,如%...%,或者JSP…/JSP。JSP的工作流程如下:当其读到HTML的代码的时候,就直接输出到客户端,而如果读到嵌入JSP脚本的时候,就需要对这些脚本进行另外的翻译和处理,得到输出之后再输出到客户端。
下面通过一个简单页面编写来了解JSP网络应用的框架:
1.JSP客户端交互
JSP的大部分工作就是与客户端进行交互。客户端一般指的是浏览器,它们与置于服务器端得JSP页面进行交互。JSP脚本中所有的Java语句都是在服务器执行,服务器接受客户端提交的请求,通过一定的处理之后,将结果返回给客户端,客户端得到的仅仅是HTML代码。下面是一个JSP的HelloWorld程序代码:
html head titleHelloWorld for JSP/title /head body h1HelloWord for JSP/h1 %out.println(h3Hello World!/h3);% /body /html 2.交互过程的流程
在一般的客户端和服务器端的交互中,是用HTTP协议,客户端通过下面4个步骤也服务器段进行交互:
(1)客户端和服务器端建立连接
(2)发送客户端请求
(3)服务器返回应答给客户
(4)客户端关闭连接
所有的请求都是由客户端主动发出的,而服务器一直出于被动的监听状态。用户在浏览器键入要访问的地址,按回车键确认后,浏览器开始与服务器建立连接,从这时开始,就开始了一次交互过程。浏览器通过一段时间的等待后,从服务器得到响应,并且把相应的信息以HTML方式呈现给用户。用户在浏览网站的过程中,实际上包含了很多这样的交互应答过程。在客户端与JSP页面的交互过程中,只有服务器接收请求和返回应答的动作可能不一样,其他与上面过程基本一致。基本情况如下:
(1)服务器在收到一个请求后首先要分析这个请求,如果请求的页面只是一般的HTML页面,服务器就直接读出HTML页面并返回给客户端
(2)如果客户端请求的是JSP页面,服务器调用JSP引擎翻译处理所请求的JSP页面,并将翻译和处理之后的HTML返回给客户端
(3)如果遇到JavaBeans组件,JSP引擎将调用相应的JavaBeans组件,得到JavaBeans的返回值,最后返回给JSP页面
3.JSP引擎的工作原理
当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:
(1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序
(2)JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class
(3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端
以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。
4.对请求信息的处理
在大部分的交互过程中,一个JSP页面首先对用户提出的请求进行分析,然后从请求中得到有用的数据,比如接收用户提交的数据或者请求的方法,然后进行相应的处理。而这就需要了解得到传入参数的方法和得到用户其他信息的方法。
(1)得到传入参数的方法
在交互过程中,服务器必须从客户端得到一些数据,来帮助处理过程的进行。这些数据包括用户身份验证数据(如用户名、密码等)以及其他中要信息。而这些数据的载体,就是用户提交的请求。请求的组成主要有两部分,一是头信息。头信息包含了以下信息:请求的方法(GET和POST)、请求的URL和浏览器信息。其他信息包含了一些数据信息。
首先要了解的是GET方法发送请求时,这种方法是客户端用来向服务器段请求信息的,所以在请求中不包含信息体。用户只能把请求的内容作为参数附加在URL后面进行发送,参数之间用“”符号隔开,如代码:一个典型的GET请求的表单get.html
html head titleGet/title /head body h1Get Method/h1 form action = submit.jsp method = GET usernameinput name = uername value = aaabr passwordinpput type = password name = password value = 111111br input type = submit value = submit /form /body /html (代码中有一个表单,表单在定义的时候,定义了属性method=“GET”,这表明表单提交的方法是GET。这个表单向服务器提交两个参数,其中一个是username,缺省值为aaa,另外一个是password,其缺省值是111111。)
这个页面只是得到了输入数据,只有submit.JSP才能实现提交这个页面的数据。这就是需要用到JSP了,代码如下:submit.JSP
html head titlesubmit/title /head body h1submit/h1 request method:%=request.getMethod() %br user name:%=request.getParameter(user) %br password:%=request.getParameter(password) %br /body /html 在这个JSP页面中是用了JSP的内置对象request的两个方法,一个是getMethod,用来获取当前请求的类型,另一个是getParameter,用来获取指定参数的值。在get.html中单击submit按钮,就可以显示表单请求方法,用户名以及密码等信息。
(2)得到其他信息的方法
得到非用户输入的其他参数信息,就需要用到其他的方法。如下所示是一个得到客户端信息的简单程序。根据这个程序我们可以初步了解如何得到客户端信息的大致思路。代码如下:
html head title得到消息/title /head body h1请求中所包含的URL/h1br %=request.getQueryString()%br /body /html本回答被提问者采纳

JSP怎么封装传对象

JSP 怎么 把多条数据 封装起来 传到第二个JSP 页面里 把完整代码 发上来 谢谢 最好有注释啊 第二个JSP怎么取出来 也写写啊 麻烦了
我是想 把数据封装起来 谢谢楼下的 不过这不是我想要的 我这里面 数据量很大 所以要封装 存到对象里 然后传到第二个JSP 取对象

通过request.getParameter方法

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form name="loginForm" method="post" action="judgeUser.jsp">
<table>
<tr>
<td>登录帐号:<input type="text" name="userName" id="userName"></td>
</tr>
<tr>
<td>登录口令:<input type="password" name="password" id="password"></td>
</tr>
<tr>
<td><input type="submit" value="登录" style="background-color:pink"> <input type="reset" value="重置" style="background-color:red"></td>
</tr>
</table>
</form>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>身份验证</title>
</head>
<body>
<%
request.setCharacterEncoding("GB18030");
String name = request.getParameter("userName");
String password = request.getParameter("password");
if(name.equals("Tom")&& password.equals("l68"))

%>
<jsp:forward page="afterLogin.jsp">
<jsp:param name="userName" value="<%=name%>"/>
</jsp:forward>
<%

else
%>
<jsp:forward page="login.jsp"/>
<%

%>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录成功</title>
</head>
<body>
<%
request.setCharacterEncoding("GB18030");
String name = request.getParameter("userName");
out.println("欢迎你:" + name);
%>
</body>
</html>
参考技术A 每一条结构化数据用bean保存,再将所有bean存入list容器中。把list对象传过去。 参考技术B 把你封装的对象放到session中。
session.setAttribute("对象别名",对象别名);
在第二个页面就直接session.getAttribute("对象别名");
然后再遍历输出对象中的属性值。
参考技术C 用bean将一个个的对象封起来,然后将其放入request里面就可以啊,我好长时间没写java了, 参考技术D 不叫“封装”也不叫“传”。
应该叫“暂存”和“取用”。
先把概念搞清楚啊,不要说的挺玄乎的。

用request session application都可以。

以上是关于怎么在第二个jsp页面中读出从第一个jsp页面中传入的值。的主要内容,如果未能解决你的问题,请参考以下文章

jsp页面传值给另一个jsp页面,怎么接收

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

#学习笔记#JSP数据交互

如何在两个jsp页面之间传值,在另外一个页面用EL表达式获取值

jsp中button怎么传值

怎样在jsp页面提取list集合的第一位第二位第三位等等的数据