Java學習(六)servlet 的引入,javaservlet

來源:互聯網
上載者:User

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");

 

今天的學習到此告一個段落,明天會繼續的進行學習並更新改文章。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.