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代码
略
励志话语:不经风雨,怎见彩虹?把握现在、就是创造未来。
今天多一份拼搏、明天多几份欢笑。加油!
最新文章
- 北京电子科技学院(BESTI)实验报告5
- PHP DOS漏洞的新利用:CVE-2015-4024 Reviewed
- 图像柔光效果(SoftGlow)的原理及其实现。
- caffe学习系列(6):其他层介绍
- 解决phpcms V9 推荐位无法排序
- python中那些双下划线开头得函数和变量--转载
- web网页的表单排版利器--960css
- mksquash_lzma-3.2 编译调试记录
- 那些年被我坑过的Python——玄而又玄(第六章 面向对象编程基础)
- DBHelper 类(网上收集)
- 转: cmd和amd的区别
- TOP按钮
- linux下文件共享的几种常用方式
- 【Python】【Flask】前端调用后端方法
- hdoj1043 Eight(逆向BFS+打表+康拓展开)
- 2018.10.09 NOIP模拟 世界杯(图论+set优化)
- 最全面的 Android 编码规范指南
- 利用ansible来做kubernetes 1.10.3集群高可用的一键部署
- Hadoop基础-HDFS数据清理过程之校验过程代码分析
- 解决数据库里表字段带下划线,实体类转小驼峰,Mapper的映射问题