一、Servlet 1、瞭解Servlet Servlet(Server Applet),全稱Java Servlet,未有中文譯文。是用Java編寫的伺服器端程式。其主要功能在於互動式地瀏覽和修改數據,生成動態Web內容。狹義的Servlet是指Java語言實現的一個介面,廣義的Servlet是指 ...
一、Servlet
1、瞭解Servlet
Servlet(Server Applet),全稱Java Servlet,未有中文譯文。是用Java編寫的伺服器端程式。其主要功能在於互動式地瀏覽和修改數據,生成動態Web內容。狹義的Servlet是指Java語言實現的一個介面,廣義的Servlet是指任何實現了這個Servlet介面的類,一般情況下,人們將Servlet理解為後者。Servlet運行於支持Java的應用伺服器中。從實現上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基於HTTP協議的Web伺服器。最早支持Servlet標準的是JavaSoft的Java Web Server。此後,一些其它的基於Java的Web伺服器開始支持標準的Servlet。目前最新版本為3.0。
2、實現過程
Servlet的主要功能在於互動式地瀏覽和修改數據,生成動態Web內容。這個過程為:
客戶端發送請求至伺服器端;
伺服器將請求信息發送至Servlet;
Servlet生成響應內容並將其傳給伺服器。響應內容動態生成,通常取決於客戶端的請求;
伺服器將響應返回給客戶端。
二、引入Servlet
將之前的例題代碼進行分析,得出:代碼套用的是下圖的模式
此模式有問題:
1、 jsp需要呼叫javabean
StudentService stuService = new StudentServiceImpl();
List<StudentInfo> stuList = stuService.getAllStudents();
我們期待是把這2行代碼去掉,讓jsp頁面更簡潔
2、 缺少控制器(跳轉用的)
這是修改後模式:MVC模式
三、舉例
1、建立實體類
參考二維表,考慮各個欄位名字、類型
1 public class House { 2 private String id; 3 private String name; 4 private String address; 5 public String getId() { 6 return id; 7 } 8 …//其它
2、 建立業務邏輯介面(HouseService)和實現(HouseServiceImpl)
介面:
1 public interface HouseService { 2 public List<House> getAllHouses(); 3 }
實現類:
1 @Override 2 public List<House> getAllHouses() { 3 List<House> houseList = new ArrayList<House>(); 4 //1 光頭強的家 森林188號 5 //2 熊大的家 森林樹洞一期3樓 6 House h1 = new House(); 7 House h2 = new House(); 8 9 h1.setId("1"); 10 h1.setName("光頭強的家"); 11 h1.setAddress("森林188號"); 12 13 h2.setId("2"); 14 h2.setName("熊大的家"); 15 h2.setAddress("森林樹洞一期3樓"); 16 17 18 houseList.add(h1); 19 houseList.add(h2); 20 21 return houseList; 22 }
3、創建一個(Servlet)控制器,調用service獲取數據集List。【把結果輸送到jsp,並跳轉過去】
3.1、建立action包
3.2、創建Servlet
在action包中新建Servlet:
3.3、填寫測試代碼
上面是測試跳轉代碼
1 request.setCharacterEncoding("UTF-8");
2
3 response.setCharacterEncoding("UTF-8");
4 response.setContentType("text/html;charset=UTF-8;pageEncoding=UTF-8");
5
6 PrintWriter out = response.getWriter();
7 out.println("你好申し訳ありませетийдоктор ");
上面這裡輸出具體的html代碼的寫法,註意:這個是反例,不應該在Servlet裡面輸出html內容,Servlet應該做控制器的功能。
3.5、建立一個show.jsp,取得request對象中的List
核心代碼:request.getAttribute("houseList_label");
今天的學習到此告一個段落,明天會繼續的進行學習並更新改文章。