jsp_类的封装_集合的应用
一、需求分析
做一个jsp页面,动态显示信息表的内容。
1.做一个实体类:StudentInfo(包含4个字段)
2.如图模拟生成3条数据,本质上就是new StudentInfo 3个实例,
每一个实例代表一行记录(后面这3条记录放到数据库,本例暂时不处理)
3.处理这3条数据的过程,不用考虑界面(采用Java代码与jsp UI页面分离)
编写一个类和方法,处理数据问题,返回值为List<StudentInfo>
把3条数据(StudentInfo)也就是3个StudentInfo的实例,把它们添加到List中
换句话说,就是这个List就是代表这个数据集合。
注意:
a、 此类为业务类(处理业务逻辑的类),要养成习惯:先写接口
b、 调用者使用此类时,应该不不关心谁是实现类,只关心接口以及其API
4.把整个List,丢给jsp用于显示数据,呈现出一个表格的状态。
二、具体的操作流程
1、先写实体类
a.建包(entity)
b.建立一个实体类:StudentInfo.java
c.对实体例,添加私有的属性,属性应该跟二维表的字段一一对应id,name,classes,place
d.一键生成get,set,部分代码如下:
public String getId() { return id;
}
public void setId(String id) { this.id = id;
}
2.建立一个业务逻辑的接口以及实现类
a.新建包service
b.建立接口StudentService.Java
public interface StudentService{ //有多少个业务逻辑,就设计多少个方法 public List<> getAllStudenta(); }
c.建立一个实现类StudentServiceImpl.java
需要:implements StudentService这个接口
public class StudentServiceImpl implements StudentService { }
d.未实现的方法
@Override public List<StudentInfo> getAllStudents() { //业务逻辑代码写在这里 return null; }
具体代码如下: @Override public List<StudentInfo> getAllStudents() { //存放所有学生信息的数据集合 List<StudentInfo> stuList = new ArrayList<StudentInfo>(); //模拟从数据库取出3条学生信息 StudentInfo si1 = new StudentInfo(); StudentInfo si2 = new StudentInfo(); StudentInfo si3 = new StudentInfo(); si1.setId("1");
si1.setId("2");
si1.setId("3");
si1.setName("国辉");
si2.setName("晓杰");
si3.setName("杰灏");
si1.setClasses("140");
si2.setClasses("140");
si3.setClasses("140");
si1.setPlace("江西");
si2.setPlace("广东");
si3.setPlace("广东"); //把3个学生存放到List集合中去 stuList.add(si1); stuList.add(si2); stuList.add(si3); return stuList; }
3.创建一个jsp页面,调用Service获取数据集List
a.新建jsp页面
b.调用Service
测试代码如下: <% StudentService stuService = new StudentServiceImpl(); List<StudentInfo> stuList = stuService.getAllStudents(); out.println(stuList.size()); %> 修改一下代码,遍历集合(for) <% StudentService stuService = new StudentServiceImpl(); List<StudentInfo> stuList = stuService.getAllStudents(); for(StudentInfo student:stuList){ out.println(student.getName()+"<br>"); } %>
c.修改jsp页面的html代码
略
励志话语:不经风雨,怎见彩虹?把握现在、就是创造未来。
今天多一份拼搏、明天多几份欢笑。加油!
jsp_类的封装_集合的应用的更多相关文章
- C++类的封装_工程
一个C++工程 main.cpp #include<stdio.h> #include"Array.h" int main(){ Array a1(10); f ...
- Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)
集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...
- 022医疗项目-模块二:药品目录的导入导出-对XSSF导出excel类进行封装
资源全部来源于传智播客. 好的架构师写的程序,就算给刚入门的新手看,新手一看就知道怎么去用.所以我们要对XSSF导出excel类进行封装.这是架构师的工作,但我们也要知道. 我们写一个封装类: 这个类 ...
- [工具类]DataTable与泛型集合List互转
写在前面 工作中经常遇到datatable与list,对于datatable而言操作起来不太方便.所以有的时候还是非常希望通过泛型集合来进行操作的.所以这里就封装了一个扩展类.也方便使用. 类 方法中 ...
- C++(二十五) — 类的封装、实现
1.类的封装.实现.对象的定义及使用 (1)类是一组对象的抽象化模型.类对象将数据及函数操作集合在一个实体中,只需要接口,而不需要知道具体的操作. 隐藏细节,模型化: 类内自由修改: 减少耦合,相当于 ...
- 抽象类,接口类,封装,property,classmetod,statimethod
抽象类,接口类,封装,property,classmetod,statimethod(类方法,静态方法) 一丶抽象类和接口类 接口类(不崇尚用) 接口类:是规范子类的一个模板,只要接口类中定义的,就应 ...
- 孤荷凌寒自学python第二十三天python类的封装
孤荷凌寒自学python第二十三天python类的封装 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.从怎么样访问类的内部代码块中定义的私有属性说起 类中定义的私有属性和私有方法是无法被 ...
- Java面向对象(类、封装)
面向对象 今日内容介绍 u 面向对象 u 封装 第1章 面向对象 1.1 理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式. l 面向过程的程序设计方式,是遇到一 ...
- python 类的封装/property类型/和对象的绑定与非绑定方法
目录 类的封装 类的property特性 类与对象的绑定方法与非绑定方法 类的封装 封装: 就是打包,封起来,装起来,把你丢进袋子里,然后用绳子把袋子绑紧,你还能拿到袋子里的那个人吗? 1.隐藏属性和 ...
随机推荐
- js event loop事件循环
浏览器环境 以下两段代码是等价的.req对事件的回调设置,实际上就是当前主线程任务队列的任务. var req = new XMLHttpRequest(); req.open('GET', url) ...
- 条款28:避免返回handles指向对象内部的成分(Avoid returning "handles" to objects internals)
NOTE: 1.避免返回handles(包括references 指针 迭代器)指向对象内部.遵守这个条款可增加分装性,帮助const 成员函数的行为像个const,并将发生“虚吊号码牌”(dangl ...
- Python进阶之网络编程
网络通信 使用网络的目的 把多方链接在一起,进行数据传递: 网络编程就是,让不同电脑上的软件进行数据传递,即进程间通信: ip地址 ip地址概念和作用 IP地址是什么:比如192.168.1.1 这样 ...
- 算法导论 第六章 2 优先队列(python)
优先队列: 物理结构: 顺序表(典型的是数组){python用到list} 逻辑结构:似完全二叉树 使用的特点是:动态的排序..排序的元素会增加,减少#和快速排序对比 快速一次排完 增 ...
- Light OJ-1082 - Array Queries,线段树区间查询最大值,哈哈,水过~~
...
- hdu4514(非连通图的环判断与图中最长链)(树的直径)
湫湫系列故事——设计风景线 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,那就建的越长越好. ...
- 2017"百度之星"程序设计大赛 - 初赛(B)度度熊的交易计划
n个村庄m条带权路,权值为花费,村庄可以造东西卖东西,造完东西可以换地方卖,给出每个村庄造东西花费a和最多个数b.卖东西价值c和最多个数d,求最大收益. 裸的费用流.然而还WA了一发.很好. 建源向每 ...
- 安装mysql时出现应用程序无法正常启动(0xc000007b)、初始化失败以及密码忘记怎样重置?
https://blog.csdn.net/zztingfeng/article/details/80155624
- Codeforces Round #533 (Div. 2) E 最大独立集
知识点 最大独立集(set) = 补图的最大团(clique ) 最小顶点覆盖 + 最大独立集 = V E. Helping Hiasat time limit per test 2 seconds ...
- Spring MVC中 log4j日志文件配置相对路径
log4j和web.xml配置webAppRootKey 的问题 1 在web.xml配置 <context-param> <param-name>webAppRootKey ...