Day14-HTTP协议 web开发概述 servlet快速入门
HTTP:HyperText Transfer Protocol
超文本傳輸協議
用于定義web瀏覽器和web服務器之間交換數據的過程
特點:
基于請求/響應模型的協議。請求和相應必須成對出現,現有請求后有響應。
HTTP協議的默認端口是80;
組成:
HTTP請求協議和HTTP響應協議;(成對出現)
HTTP請求協議包含:請求行、請求頭、請求體;
HTTP響應協議包含:響應行、響應頭、響應體;
請求部分
//請求行 GET http://localhost/day14_tomcat/test.html?username=zs&password=123 HTTP/1.1 //請求頭 Host: localhost Connection: keep-alive Content-Length: 24 Cache-Control: max-age=0 Origin: http://localhost Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 Content-Type: application/x-www-form-urlencoded Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Referer: http://localhost/day14_tomcat/login.html Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.8 Cookie: _ga=GA1.1.874373530.1497766826//請求體 username=zs&password=123請求部分:
//請求行:
響應部分
HTTP/1.1 200 OK //響應行 Server: Apache-Coyote/1.1 //響應頭 Accept-Ranges: bytes ETag: W/"177-1497947263889" Last-Modified: Tue, 20 Jun 2017 08:27:43 GMT Content-Type: text/html Content-Length: 177 Date: Tue, 20 Jun 2017 08:42:56 GMT<!DOCTYPE html> //響應體 <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body><h3>hello from eclipse123</h3><div></div> </body> </html>//響應部分:
響應行: HTTP/1.1 200 OK
格式: 協議/版本 狀態碼 狀態碼的說明
web開發概述:
軟件架構:
C/S架構:Client/Server客戶端/服務器端;要求客戶端電腦安裝一個客戶端程序優點:1)用戶體驗好,效果炫2)對信息安全的控制較強3)應用服務器運行數據負荷較輕,部分計算功能在客戶端完成缺點:1)占用硬盤空間2)維護麻煩3)安裝使用依賴于其他條件。B/S架構Browse/Server 瀏覽器/服務器,通過瀏覽器和服務器交互,不需要安裝其他程序;優點:1)維護和升級簡單,無縫升級;2)不用安裝程序,操作系統內置了瀏覽器;缺點:1)動畫效果受瀏覽器限制2)對信息安全控制較差;3)應用服務器運行數據負荷較中,大部分計算機都在服務器端,增加服務器的壓力。web服務器:
(JavaEE企業級開發規范,也叫J2EE,在Java中,規范就是接口。)
常見的 web服務器:
1)Tomcat;Apache組織提供的一個免費的小型的服務器。
2)WebLogic:Bea公司一個收費的大型服務器軟件,后被Oracle收購。
3)WebSphere:IBM公司的一個收費的大型服務器軟件
Servlet快速入門
現在src下面下class文件,實現Servlet接口
package com.itheima.servlet;import java.io.IOException;import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse;//單例設計模式,每次調用的時候都是調用同一個對象 public class HelloServlet implements Servlet {@Overridepublic void init(ServletConfig arg0) throws ServletException {// TODO Auto-generated method stub}@Override //每次訪問的時候都執行,每個請求到達的時候,tomcat都會創建一個新的線程,在線程中調用service方法。public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {// 專門向客戶端提供相應的方法。HttpServletResponse response = (HttpServletResponse) arg1;response.getWriter().write("this is my first servlet!!!");}//-----------------------------------------------------------------------@Overridepublic void destroy() {// TODO Auto-generated method stub}@Overridepublic ServletConfig getServletConfig() {// TODO Auto-generated method stubreturn null;}@Overridepublic String getServletInfo() {// TODO Auto-generated method stubreturn null;} }然后再在web.xml核心配置文件里面進行配置:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><display-name>Day14_0618_01</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!--聲明一個servlet路徑--><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>com.itheima.servlet.HelloServlet</servlet-class></servlet><!--配置映射路徑--><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/abc</url-pattern></servlet-mapping> </web-app>什么是Servlet:
Servlet是運行在服務端的java小程序,是sun公司提供的一套規范,用來處理客戶端請求、相應給瀏覽器的動態資源。
servlet 是運行在 Web 服務器中的小型 Java 程序。servlet 通常通過 HTTP(超文本傳輸協議)接收和響應來自 Web 客戶端的請求。
要實現此接口,可以編寫一個擴展 javax.servlet.GenericServlet 的一般 servlet,或者編寫一個擴展 javax.servlet.http.HttpServlet 的 HTTP servlet。
此接口定義了初始化 servlet 的方法、為請求提供服務的方法和從服務器移除 servlet 的方法。這些方法稱為生命周期方法,它們是按以下順序調用的:
- 構造 servlet,然后使用 init 方法將其初始化。
- 處理來自客戶端的對 service 方法的所有調用。
- 從服務中取出 servlet,然后使用 destroy 方法銷毀它,最后進行垃圾回收并終止它。
除了生命周期方法之外,此接口還提供了 getServletConfig 方法和 getServletInfo 方法,servlet 可使用前一種方法獲得任何啟動信息,而后一種方法允許 servlet 返回有關其自身的基本信息,比如作者、版本和版權。
Servlet是JavaWeb三大組件之一(Servlet、Filter、Listener),且最重要。
作用:
用來處理從客戶端發送過來的請求,并對該請求做出響應 。
總結
以上是生活随笔為你收集整理的Day14-HTTP协议 web开发概述 servlet快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用仿射变换将一幅图像放置到另一幅图像中
- 下一篇: 组队学习-动手学数据分析-第二章第2、3