页面之间的数据传递
来源:互联网 发布:excel输入数据 编辑:程序博客网 时间:2024/05/24 00:26
页面之间的数据传递:
1、A.jsp提交数据到B.jsp
A.jsp----
<form method="post" action="B.jsp">
<input type="text" name="num"/>
<input type="submit" value="提交" >
</form>
B.jsp----
<%
String u = request.getParameter("num");
out.print(u);
%>
2、Url地址栏传参数
1)一个页面被访问的时候,获取地址栏中的参数
http://localhost:8081/myweb/A.jsp?变量1=值1&变量2=值2
例子:http://localhost:8081/myweb/A.jsp?name=tom&pwd=123
<%
String n = request.getParameter("name");
String p = request.getParameter("pwd");
out.print(n);
out.print(p);
%>
---
tom123
2)从A页面超链接或者重定向到B页面时,可以通过地址栏把A的数据传递给B
A.jsp--------
<%
String a = "hello";
String b = "kitty";
%>
<a href="B.jsp?num1=<%=a%>&num2=<%=b%>">跳转到B</a>
B.jsp---------
<%
String n = request.getParameter("num1");
String p = request.getParameter("num2");
out.print(n);
out.print(p);
%>
另外:
response.sendRedirect("B.jsp?a=1&b=2");
3、A表单提交给B,B再(请求)转发给C
A.jsp->action="B.jsp"-->转发给C.jsp
B中执行:
request.getRequestDispatcher("C.jsp").forward(request, response);
C中执行:
request.getParameter("变量名");
相当于数据从A到B到C
4、session存放(只要浏览器不关,会话不结束就有效)
A.jsp----
<%
String a = "hello";
String b = "kitty";
session.setAttribute("x", a);
session.setAttribute("y", b);
out.print("session存好了");
%>
B.jsp-----
<%
Object o1 = session.getAttribute("x");
Object o2 = session.getAttribute("y");
out.print(o1.toString());
out.print(o2.toString());
%>
5、application存放(只要服务器不关,不主动删除有效)
A.jsp----
<%
String a = "hello";
String b = "kitty";
application.setAttribute("x", a);
application.setAttribute("y", b);
out.print("session存好了");
%>
B.jsp-----
<%
Object o1 = application.getAttribute("x");
Object o2 = application.getAttribute("y");
out.print(o1.toString());
out.print(o2.toString());
%>
6、作用域:对象在什么范围内有效
四大域对象(当成4个容器,每个容器存内容用setAttribute,取内容getAttribute):
application:作用范围是整个web应用
session:作用范围是一次会话(浏览器)
request:作用范围是一次请求(整个请求可以用请求转发的方式在页面之间传递)
pageContext:作用范围是一个页面
例1:
request.setAttribute("a", "呵呵");
Object o = request.getAttribute("a");
out.print(o.toString());
例2:
pageContext.setAttribute("a", "呵呵");
Object o = pageContext.getAttribute("a");
out.print(o.toString());
由于http协议是无状态(下一个请求永远记不住上一个请求),request对象必须用请求转发的方式才能送到下一页。
例子:
1、创建Servlet:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String[] args ={"tom","jerry","mark"};
//把数组送到A页面去,先把数据存入request域对象
request.setAttribute("names", args);
//请求转发给A
request.getRequestDispatcher("A.jsp").forward(request, response);
}
2、A.jsp获取request域中的数据
<%
Object o = request.getAttribute("names");
String[] ns = (String[])o;
for(int i=0;i<ns.length;i++)
{
out.print(ns[i]);
}
%>
阅读全文
0 0
- 页面之间的数据传递
- 页面之间传递数据
- WP8页面之间的数据传递
- Android-Activity页面之间的数据传递
- Android_页面之间的数据传递
- Activity页面之间的数据传递
- Android-Activity页面之间的数据传递
- Activity页面之间的数据传递
- html页面之间的数据传递
- 页面之间传递数据2
- WP8 页面之间传递数据
- Activity页面之间数据传递
- Activity页面之间数据传递
- Activity页面之间数据传递
- Activity页面之间数据传递
- Activity页面之间数据传递
- Android_Activity页面之间数据传递
- 页面之间json数据传递
- live555 两个循环
- oracle新建用户相关操作
- 线性表的链式存储实现c++
- 根号n段合并排序算法的实现
- PostgreSQL 实现按月按年,按日统计 分组统计
- 页面之间的数据传递
- iOS设备中垂直同步开启后的帧率计数
- Next Permutation-leetcode下一个排列组合
- 图论-C语言-foundation(2)
- spring-jdbc常用sql语句
- 用vue-cli 自动构建的目录里面 (环境变量及其基本变量的配置)
- 欢迎使用CSDN-markdown编辑器
- PAT1003. Emergency (25)
- 关于同步、异步、阻塞、非阻塞的几点理解