jsp-类的封装-集合的应用

一、需求分析

做一个jsp页面,动态显示信息表的内容。

1、 做一个实体类:EmployeeInfo (包含4个字段)

2、 如图模拟生成3条数据,本质上就是new EmployeeInfo 3个实例,

每个实例代表一行记录(后面这3条记录放到数据库,本例暂时不处理)

3、 处理这3条数据的过程,不用考虑界面(采用java代码与jsp UI页面分离)

编写一个类和方法,处理数据问题,返回值为List<EmployeeInfo>

把3条数据(EmployeeInfo)也就是3个EmployeeInfo的实例,把它们添加到List中

换句话说,就是这个List就是代表这个数据集合。

注意:

a、 此类为业务类(处理业务逻辑的类),要养成习惯:先写接口

b、 调用者使用此类时,应该不不关心谁是实现类,只关心接口以及其API

把整个List,丢给jsp用于显示数据,呈现出一个表格的状态

二、具体操作流程

1、先写实体类(先写属性,然后添加get/set)

1、File --> New --> Dynamis Web Project

2、建包(entity)

Students --> src --> 右键 --> New --> package  -->entity

3、建立1个实体类:EmployeeInfo.java

entity --> 右键 -->  New -->  Class

4、对实体例,添加私有的属性,属性应该跟二维表的字段一一对应

5、一键生成get,set

StudnetInfo.java --  右键 --> Source --> Generate Geters and Setter.....

2、建立一个业务逻辑的接口以及实现类,有几个业务逻辑,就有几个方法

1、先建包service

Students --> src --> 右键 --> New --> package  -->service

2、建立接口EmployeeService.java

service --> 右键 -->  New -->  Class --> EmployeeService

3、建立一个实现类EmployeeServiceImpl.java

service --> 右键 -->  New -->  Class --> StudentServiceImpl

4、建立一个实现类StudentServiceImpl.java

需要:implements EmployeeService这个接口

public class  EmployeeServiceImpl implements EmployeeService {

}

实现未实现方法

具体代码如下:

package service;

import java.util.ArrayList;
import java.util.List;

import entity.EmployeeInfo;

public class EmployeeServiceImpl implements EmployeeService{

@Override
public List<EmployeeInfo> getAllEmployee() {
List<EmployeeInfo> employeeList=new ArrayList<EmployeeInfo>();
  EmployeeInfo em1=new EmployeeInfo();
  EmployeeInfo em2=new EmployeeInfo();
  EmployeeInfo em3=new EmployeeInfo();

  em1.setId("001");
  em1.setName("张三");
  em1.setSex("男");
  em1.setNumber("136018551");

  em2.setId("002");
  em2.setName("李四");
  em2.setSex("男");
  em2.setNumber("138511222");

  em3.setId("003");
  em3.setName("王五");
  em3.setSex("男");
  em3.setNumber("138588555");

  employeeList.add(em1);
  employeeList.add(em2);
  employeeList.add(em3);

  return employeeList;
  }
}

5、建立一个jsp页面,调用service获取数据集List

a、 新建一个jsp、 倒4个jstl的包、添加<%@ taglib prefix="c"… 、写遍历结果集合的代码

(1)、 JSTL的引入可以让JSP代码中<%%>等代码消失掉,再结合EL表达式,会更加方便以及美观。

(2)、各套框架(还没有学习,比如struts,SpringMVC等)都有自己的标签库,这时JSTL可以作为公共、通用的,横行于各框架中。

操作:下载JSTL包

http://tomcat.apache.org/taglibs/

第二步:新建一个jsp页面

WebContent  --->  鼠标右键  --->New ---->  Jsp File

设置表头调用JSTL包

c、调用service

测试代码如下:

<%

EmployeeService employeeService = new EmployeeServiceImpl();

List<EmployeeInfo> employeeList=new ArrayList<EmployeeInfo>();

out.println(employeeList.size());

%>

修改一下代码,遍历集合(for)

<%

EmployeeService employeeService = new EmployeeServiceImp

List<EmployeeInfo> employeeList=new ArrayList<EmployeeInfo>();

for(EmployeeInfo employee:employeeInfoList){

out.println(employee.getName()+"<br>");

}

d、修改jsp页面的html代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="C"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table width="50%" border="1" cellspacing="1" cellpadding="1" align="center">
	<tr>
		<td>编号</td>
		<td>姓名</td>
		<td>性别</td>
		<td>号码</td>
	</tr>
<C:forEach items="${employeeInfoList}" var="h">
	<tr>
		<td>${h.id}</td>
		<td>${h.name}</td>
		<td>${h.sex}</td>
		<td>${h.number}</td>
	</tr>
</C:forEach>
</table>
</body>
</html>

6、servlet的引入

这是修改后模式:MVC模式

servlet的使用:

7、建立actoin包

在doGet方法中写代码;

a. 呼叫service

b. 把结果集List放到request对象

跳转到jsp中

Students --> src --> 右键 --> New --> package  -->action

action --> 鼠标右键  --> new -->Servlet

request对象包含的内容以及获取

7、建立个主页index.jsp

用response.sendRedirect做转向其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上可以看到地址的变化。

8、运行项目

项目---> 右键----->Run As ------>Run on Server

项目结果

时间: 2024-12-08 13:07:04

jsp-类的封装-集合的应用的相关文章

浅谈JavaEE中的JDBC模板类的封装实现以及合理的建立项目包结构(一)

从今天开始我们一起来聊下有关,javaEE开发中的一些知识,JavaEE的开发用于企业级的开发,但是现在企业中一般也不会使用JDBC开发,大部分都是使用自己公司开发的一套的框架,但是这些框架的架构一般也是会模仿着有名JavaEE开源三大开发框架SSH(Struts2+Spring+Hibernate)或者现在也很流行的SSM开发框架(Spring+SpringMVC+MyBatis) 来进行深度定制以便于适合自己企业的实际开发需求.有的人曾说既然去公司又是重新学习一套框架,还有必要学习开源的三大

回到基础:封装集合

以前学面向对象时,了解到它有三种特性: 封装 继承 多态 Java中封装的实现,是通过为私有成员提供访问器方法,即通常所知的getter和setter方法.这样封装是否合适仍属争议,也超出了本文的 讨论范围.但是,当成员变量为集合类型(java.util.Collection,java.util.Map以及它们的子类)时,这样实现封装是完全 错误的. 我经常能见到的代码像下面这样: 1 2 3 4 5 6 7 8 9 10 11 public class MyBean {     private

重构第一天:封装集合

在一些情况下,在一个类中选择不去暴露整个集合给调用者是非常有必要的.比如当我们给一个集合添加/删除item时,我们需要添加一些额外的逻辑.因为这个原因,一个非常好的办法就是让暴露出来的collecction只能被迭代而不能被修改.让我们看下面的例子. public class Order { private List<OrderLine> _orderLines; public IEnumerable<OrderLine> OrderLines { get { return _or

【Java重构系列】重构31式之封装集合

2009年,Sean Chambers在其博客中发表了31 Days of Refactoring: Useful refactoring techniques you have to know系列文章,每天发布一篇,介绍一种重构手段,连续发文31篇,故得名“重构三十一天:你应该掌握的重构手段”.此外,Sean Chambers还将这31篇文章[即31种重构手段]整理成一本电子书, 以下是博客原文链接和电子书下载地址: 博客原文:http://lostechies.com/seanchamber

ado数据模型和数据访问类,泛型集合

using System; using System.Collections.Generic; using System.Linq; using System.Text; using 实体类_数据访问类_泛型集合.moxing;//引用命名空间 using 实体类_数据访问类_泛型集合.shujucaozuo; namespace 实体类_数据访问类_泛型集合 { class Program { static void Main(string[] args) { List<car> data

LruCache缓存处理及异步加载图片类的封装

Android中的缓存处理及异步加载图片类的封装 一.缓存介绍: (一).Android中缓存的必要性: 智能手机的缓存管理应用非常的普遍和需要,是提高用户体验的有效手段之一. 1.没有缓存的弊端: 流量开销:对于客户端——服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量. 加载速度:如果应用中图片加载速度很慢的话,那么用户体验会非常糟糕. 那么如何处理好图片资源的获取和管理呢?异步下载+本地缓存 2.缓存带来的好处: 1. 服务器的压力大大减小: 2. 客户

javascript 总结(常用工具类的封装,转)

javascript 总结(常用工具类的封装) 前言 因为工作中经常用到这些方法,所有便把这些方法进行了总结. JavaScript 1. type 类型判断 isString (o) { //是否字符串 return Object.prototype.toString.call(o).slice(8, -1) === 'String' } isNumber (o) { //是否数字 return Object.prototype.toString.call(o).slice(8, -1) ==

类和封装的概念

类和封装的概念 什么是类? 电脑一般而言是由CPU,内存,主板,键盘和硬盘等部件组合而成. 思考:学习电脑组装需要多少时间?学习电脑组装是都需要学习显示器,键盘,鼠标,主板等部件的设计与制造? 类的封装 我们可以把程序按某种规则分成很多"块",类与类之间可能会有联系,每个类都有一个可变部分(public)和一个不可变部分(private).我们需要把可变部分和不可变部分分离出来,将不可变的部分暴露给其他类,而将可变的部分隐藏起来,以便于随时可以让它修改.这项工作就是封装. 类分为以下两

022医疗项目-模块二:药品目录的导入导出-对XSSF导出excel类进行封装

资源全部来源于传智播客. 好的架构师写的程序,就算给刚入门的新手看,新手一看就知道怎么去用.所以我们要对XSSF导出excel类进行封装.这是架构师的工作,但我们也要知道. 我们写一个封装类: 这个类单独有自己的main函数. 我们进入main函数一步一步看: public static void main(String[] args) throws Exception { /** 导出文件存放物理路径 * @param fileWebPath * 导出文件web下载路径 * @param fi

数据访问类的封装与三大类

数据访问类的封装: 数据访问类分为三大类:连接类,实体类,数据访问类. 1.连接类: public class lianjie { private static string connection="server=.;database=mydb;uid=sa;pwd=789234178"; public static Sqlconnection conn { get { SqlConnection conn=new Sqlconnection(connecction); return