Java學習(六)servlet 的引入,javaservlet
一、Servlet1、瞭解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");
今天的學習到此告一個段落,明天會繼續的進行學習並更新改文章。