jsp-類的封裝-集合的應用

1、需求分析

作一個jsp頁面,動態顯示信息表的內容。html

一、 作一個實體類:EmployeeInfo (包含4個字段)java

二、 如圖模擬生成3條數據,本質上就是new EmployeeInfo 3個實例,數據庫

每一個實例表明一行記錄(後面這3條記錄放到數據庫,本例暫時不處理)apache

三、 處理這3條數據的過程,不用考慮界面(採用java代碼與jsp UI頁面分離)瀏覽器

編寫一個類和方法,處理數據問題,返回值爲List<EmployeeInfo>tomcat

3條數據(EmployeeInfo)也就是3個EmployeeInfo的實例,把它們添加到List框架

換句話說,就是這個List就是表明這個數據集合。jsp

注意:ide

a、 此類爲業務類(處理業務邏輯的類),要養成習慣:先寫接口學習

b、 調用者使用此類時,應該不不關心誰是實現類,只關心接口以及其API

把整個List,丟給jsp用於顯示數據,呈現出一個表格的狀態

2、具體操做流程

1、先寫實體類(先寫屬性,而後添加get/set

 

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

 

二、建包(entity)

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

三、創建1個實體類:EmployeeInfo.java

entity --> 右鍵 -->  New -->  Class

四、對實體例,添加私有的屬性,屬性應該跟二維表的字段一一對應

五、一鍵生成get,set

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

二、創建一個業務邏輯的接口以及實現類,有幾個業務邏輯,就有幾個方法

 

一、先建包service

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

二、創建接口EmployeeService.java

service --> 右鍵 -->  New -->  Class --> EmployeeService

 

三、創建一個實現類EmployeeServiceImpl.java

 service --> 右鍵 -->  New -->  Class --> StudentServiceImpl

四、創建一個實現類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;
  }
}

 

五、創建一個jsp頁面,調用service獲取數據集List

a、 新建一個jsp、 4jstl的包、添加<%@ 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>

六、servlet的引入

這是修改後模式:MVC模式

servlet的使用:

七、創建actoin

doGet方法中寫代碼;

a. 呼叫service

b. 把結果集List放到request對象

跳轉到jsp

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

action --> 鼠標右鍵  --> new -->Servlet

 

request對象包含的內容以及獲取

七、創建個主頁index.jsp

用response.sendRedirect作轉向實際上是向瀏覽器發送一個特殊的Header,而後由瀏覽器來作轉向,轉到指定的頁面,因此用sendRedirect時,瀏覽器的地址欄上能夠看到地址的變化。

八、運行項目

項目---> 右鍵----->Run As ------>Run on Server

項目結果

相關文章
相關標籤/搜索