Android伺服器端開發
- html/css:制作靜态頁面
-
servlet:動态頁面
看界面與伺服器之間有沒有資料的互動
Web開發裡面的模式
C/S:客服端/伺服器端
優點:安全性高,用戶端是可以分擔伺服器端的一些功能子產品
缺點:必須安裝客服端,開發成本大,維護比較困難,不能無縫更新
B/S:浏覽器/伺服器端
優點:隻要開發伺服器端就可以了,可以實作無縫更新
缺點:安全性低,所有的功能都是由伺服器端去完成的(高強度的負載);
O2O 線上和線下(去除了中介)
P2P (點到點)
網際網路:虛拟的網絡環境,将世界上所有的能上網的東西放在一個網絡環境中,互相發送郵件,資源的共享。
網際網路:一種網絡協定 www.baidu.com World Wide Web
應用層:http https
傳輸層:TCP/IP
J2SE(核心基礎JAVA) J2EE(企業級開發)
CGI:公共網關接口 CGI每次都會啟動一個程序來處理用戶端發來的請求,效率比較低。CGI遵循HTTP協定,多語言開發:C,JAVA
Servlet:API在J2EE。由SUN公司營運管理 Servlet每次都會啟動一個輕量級的線程來處理用戶端發來的請求,效率比較高
簡單概念:Servlet就是運作在伺服器端的JAVA代碼。有自己的一套API
專業概念:Servlet他是一個元件(用很少的代碼去完成一個功能子產品)(server applet)
伺服器:就是一台主機,安裝一些軟體
Tomcat:伺服器端的容器
- bin:可執行的檔案
- webapps:所有部署到伺服器上的代碼全都在這個檔案夾裡面
三種方式寫伺服器端檔案。
1.實作Servlet接口,從寫裡面的回調方法
2.外部想要通路Servlet,Servlet就必須注冊并且向外界提供通路路徑(Tomcat7.0之前的必須在WebContent目錄下web.xml檔案中配置,之後的可以直接利用注解@WebServlet("/hello"))
- 實作implements Servlet這個接口。必須重寫裡面的方法
// 收到請求的時候回調 @Override public void service(ServletRequest arg0, ServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // Servlet線程不安全,如果你要讓N個線程同時去操控一個共有的屬性 // SerVlet裡面就不去寫成員變量,都攜程局部變量(每個線程有自己的變量名) // int i // i++; // 設定編碼 response.setCharacterEncoding("GBK"); PrintWriter writer = arg1.getWriter(); writer.write("這是我的第一個Serlvet"); writer.flush(); writer.close(); System.out.println("service") }
- 在JAVAResource下面建立一個類繼承extends GenericServlet在重寫Service方法
// TODO Auto-generated method stub
response.setContentType("text/xml");
response.setCharacterEncoding("GBk");
PrintWriter writer = arg1.getWriter();
writer.write("<student><name>張三</name></student>");
writer.flush();
writer.close();
- 第三種是官方建議的直接建立Servlet類似于直接建立一個Activity一樣。它是繼承于HttpServlet,我們隻需在doGet或是doPost()方法中有一個調用對方就可以了。
這三種方式最基層就是實作Servlet接口,其次是繼承GenericService。最後才是HttpServletprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setCharacterEncoding("GBK"); response.setContentType("text/html"); PrintWriter writer = response.getWriter(); writer.write("<html><img src='aa.png'></html>"); writer.flush(); writer.close(); }
文/清楓_小天(簡書作者)
原文連結:http://www.jianshu.com/p/67ef863dc2af
著作權歸作者所有,轉載請聯系作者獲得授權,并标注“簡書作者”。