#学习笔记#JSP数据交互

数据库的使用方式:
 
当用户在第一个页面的查询框输入查询语句点提交的时候我们是用什么样的方式完成这个查询的?
答:我们通过在第一个页面提交表单的形式,真正的数据库查询时在第二个服务器页面进行的,第一个request对象里面放置了查询的内容,我们可以通过request.getParameter()方法获得,在服务器内我们之间把所有的查询直接用html语句输出是很困难的,所以我们把查询的结果赋给request的Attribute,使用request.sex`x`x``tAttribute()方法,并将第一个页面的request与response对象传递给第三个JSP页面,由这个页面显示出结果。
 
由request的特性可知它的存活时间只在两个页面的请求之间,所以我们需要在转到下一个页面的时候将上一个request对象当成下一个request对象来使用,所以在Servlet当中要对其进行处理:
RequestDispatcher re = request.getRequestDispatcher("myResult.jsp");
re.forward(request, response);
 
这也是forward的使用方式(存在的原因)不然我们可以之间跳转而不需中间的页面!
 
 
1、第一个JSP页面
<body>
<form action="/test/reServlet">
username:<input type="text" name="username">;
<input type ="submit" value = "submit"> 
</form>
  </body>
2、服务器页面(Servlet)
public class reServlet extends HttpServlet {
 
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
request.setAttribute("user", username);
List<Integer> alist = new ArrayList();
for(int i = 0;i<100;i++){
alist.add(i);
}
request.setAttribute("list", alist);
RequestDispatcher re = request.getRequestDispatcher("myResult.jsp");
re.forward(request, response);
}
}
3、第三个页面
<body>
  <% String username =(String)request.getAttribute("user"); 
  String user = (String)request.getParameter("username");
  List list = (ArrayList)request.getAttribute("list");
  %>
  <%=username %><br>
  <%=user %>
<% for(int i =0;i<list.size();i++){
%><%=list.get(i) %>
<% }%>
  </body>

#学习笔记#JSP数据交互的更多相关文章

  1. 1.4(Spring MVC学习笔记)JSON数据交互与RESTful支持

    一.JSON数据交互 1.1JSON简介 JSON(JavaScript Object Notation)是一种数据交换格式. 1.2JSON对象结构 {}代表一个对象,{}中写入数据信息,通常为ke ...

  2. 学习笔记|JSP教程|菜鸟教程

    学习笔记|JSP教程|菜鸟教程 ------------------------------------------------------------------------------------ ...

  3. JSP数据交互

    JSP数据交互   一.jsp中java小脚本 1.<% java代码段%> 2.<% =java表达式%>不能有分号 3.<%!成员变量和函数声明%>二.注释 1 ...

  4. Windows phone 8 学习笔记(2) 数据文件操作

    原文:Windows phone 8 学习笔记(2) 数据文件操作 Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方 ...

  5. ArcGIS案例学习笔记_3_2_CAD数据导入建库

    ArcGIS案例学习笔记_3_2_CAD数据导入建库 计划时间:第3天下午 内容:CAD数据导入,建库和管理 目的:生成地块多边形,连接属性,管理 问题:CAD存在拓扑错误,标注位置偏移 教程:pdf ...

  6. GIS案例学习笔记-CAD数据分层导入现有模板实例教程

    GIS案例学习笔记-CAD数据分层导入现有模板实例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 1. 原始数据: CAD数据 目标模板 2. 任务:分5个图层 ...

  7. ArcGIS案例学习笔记-CAD数据自动拓扑检查

    ArcGIS案例学习笔记-CAD数据自动拓扑检查 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能:针对CAD数据,自动进行拓扑检查 优点:类别:地理建模项目实例 ...

  8. Windows phone 8 学习笔记(2) 数据文件操作(转)

    Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方.本节主要讲解它们的用法以及相关限制性.另外包括本地数据库的使用方式 ...

  9. springMVC学习(11)-json数据交互和RESTful支持

    一.json数据交互: json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. springMVC进行json交 ...

随机推荐

  1. Lintcode97-Maximum Depth of Binary Tree-Easy

    97. Maximum Depth of Binary Tree Given a binary tree, find its maximum depth. The maximum depth is t ...

  2. 微软官方的Windowsphone社区

    微软官方的Windowsphone社区 http://answers.microsoft.com/zh-hans/winphone/forum/wp8?tab=Threads http://answe ...

  3. 论Object.keys(), Object.getOwnPropertyNames(), for in, Object.getOwnPropertySymbol()区别

    前不久,一朋友求助,让我给解释一波Object.keys(), Object.getOwnPropertyNames(), for in的区别,面试中好几次呗问了.所以,抽了点时间看了看,大概把我看的 ...

  4. Codeforces Round #FF (Div. 2) D. DZY Loves Modification 优先队列

    D. DZY Loves Modification time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  5. P2292 [HNOI2004]L语言

    传送门 思路:  毒瘤的字典树! ▲主要分有两个步骤: ① 日常的建树. ② 暴力地求解. ▲日常建树:过于基础,跳过. ▲重点在于如何暴力地求解而不被卡掉(DP?不存在的) 可以利用区间动规的思想, ...

  6. [原]JSBSim 自动驾驶(浅出)

    jsbsim的脚本文件分为几大类: 1.系统脚本: systems  包含通用飞机各部分功能模块组件以及自动飞行控件:Autopilot.xml  和 自动飞行的算法控件:GNCUtilities.x ...

  7. 最长公共前缀(java实现)

    题目: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow& ...

  8. Luffy之购物车页面搭建

    前面已经将一些课程加入购物车中,并保存到了后端的redis数据库中,此时做购物车页面时,我们需要将在前端向后端发送请求,用来获取数据数据 购物车页面 1.首先后端要将数据构建好,后端视图函数如下代码: ...

  9. 若依项目分模块集成uflo2

    关于若依分模块创建项目可参考:https://www.cnblogs.com/conswin/p/9766186.html 了解uflo2,uflo2是一套由BSTEK自主研发的基于Java的工作流引 ...

  10. CopyOnWriteArrayList&Collections.synchronizedList()

    1.ArrayList ArrayList是非线性安全,此类的 iterator() 和 listIterator() 方法返回的迭代器是快速失败的:在创建迭代器之后,除非通过迭代器自身的 remov ...