測試開發系列之——java web

關鍵詞

  • 靜態資源和動態資源
  • 同源策略和跨域
    • 同源概念:
      • 協議、域名、端口相同,則表示他們同源。
      • 同源策略只對限制js來讀寫其他域的dom數據做了限制,對加載的其他靜態資源如javascript、css、圖片等仍然認爲屬於同源。

學習目標

  1. java開發環境搭建
  2. http協議
  3. Java web概述與工程創建

java簡史

  • 1995年,SUN發佈JAVA
  • 2009年,甲骨文公司宣佈收購Sun
  • 2010年,Java共同創始人之一詹姆斯*高斯林從Oracle公司辭職
  • 2011年,Java7正式發佈
  • 2014年,發佈了Java8正式版

jdk-下載和安裝

JDK版本已至13,目前仍以JDK8使用最多

  1. 下載jdk8安裝文件到本地
    https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  2. 安裝並配置環境變量

java-特點

Java是一次編寫到處運行,跨平臺
java虛擬機JVM,運行字節碼.class
java是一門面向對象編程語言,類和對象
棧、堆、方法區、運行時常量池

eclipse安裝

  1. Eclipse是一個開放源代碼的,基於Java的可擴展開發平臺。Eclipse官方版是一個集成開發環境(IDE)。
  2. 解壓即安裝
  3. 配置jre

http協議

  • Hypertext Transfer Protocol,超文本傳輸協議
  • 瀏覽器和服務器之間進行“溝通”的一種規範
  • http是屬於“應用層的協議”,基於TCP/IP協議
  • http無狀態協議

HTTP1.0定義了三種請求方法:GET, POST和HEAD方法。
HTTP1.1新增了五種請求方法:OPTION, PUT, DELETE, TRACE和CONNECT方法。

http1.1協議請求消息結構

  • 一個完整的http請求消息,包含一個請求行,若干個消息頭(請求頭),換行,實體內容

http1.1協議響應消息結構

  • 一個http響應代表服務器端向客戶端會送的數據,它包括一個狀態行,若干個消息頭,以及空行、實體內容。

HTTP狀態碼

  • HTTP Status Code
    1xx:指示信息–表示請求已接收、繼續處理
    2xx:成功–表示請求已被成功接收、理解、接受
    3xx:重定向–要完成請求必須進行更進一步的操作
    4xx:客戶端錯誤–請求有語法錯誤或請求無法實現
    5xx:服務器端錯誤–服務器未能實現合法的請求

常見狀態碼:
200 OK
201 ……(待補充)

REST

REST(Representational State Transfer):表述性狀態轉移
如果一個架構符合REST原則,則稱它爲Restful架構,輕量級,跨平臺,跨語言的設計;

基於HTTP協議的url:https://ke.qq.com/course/402016

GET(SELECT):從服務器取出資源(一項或多項)。
POST(CREATE):在服務器新建一個資源。
PUT(UPDATE):在服務器更新資源(客戶端提供改變後的完整資源)。
PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。
DELETE(DELETE):從服務器刪除資源。

Java Web

  • Java Web,是用Java技術來解決相關web互聯網領域的技術總和。
  • web包括:web服務器和web客戶端兩部分。現在瀏覽器可以作爲一種客戶端,只需開發服務器端。
  • 技術:servlet、jsp、tomcat
  • 在eclipse下新建web工程

練習1:java基礎算法

二分法查找運行結果截圖

二分法查找運行結果截圖

TestSearch.java二分法查找代碼

public class TestSearch {

       public static void main(String[] args) {
           int[] arr = new int[] { 11, 22, 33, 45, 66, 67, 77, 88, 90 };
           System.out.println(search(arr, 11));
           System.out.println(search(arr, 45));
           System.out.println(search(arr, 67));
           System.out.println(search(arr, 88));
           System.out.println(search(arr, 99));
       }

       public static int search(int[] arr, int key) {
           int start = 0;
           int end = arr.length - 1;
           while (start <= end) {
               int middle = (start + end) / 2;
               if (key < arr[middle]) {
                   end = middle - 1;
               } else if (key > arr[middle]) {
                   start = middle + 1;
               } else {
                   return middle;
               }
           }
           return -1;
       }
}

冒泡算法運行結果截圖

冒泡算法運行結果截圖

BubbleSort.java冒泡算法代碼

public class BubbleSort {

  public static void main(String[] args) {
    int[] array={2,8,9,1,10,31,0};
    getSortD_X(array);
    getSortX_D(array);
  }
  public static void getSortD_X(int[] array){
    for (int i = 0; i < array.length; i++) {
      for(int j=0;j<array.length-1;j++){
        if(array[i]>array[j]){
          int temp=array[i];
          array[i]=array[j];
          array[j]=temp;
        }
      }
    }
    System.out.print("從大到小:");
    for (int i = 0; i < array.length; i++) {
      if(i==array.length-1){
        System.out.println(array[i]);
      }else{
        System.out.print(array[i]+",");
      }
    }
  }
  public static void getSortX_D(int[] array){
    for (int i = 0; i <array.length; i++) {
      for(int j=0;j<array.length-i-1;j++){
        if(array[j]>array[j+1]){
          int temp=array[j];
          array[j]=array[j+1];
          array[j+1]=temp;
        }
      }
    }
    System.out.print("從小到大:");
    
    for (int i = 0; i < array.length; i++) {
      if(i==array.length-1){
        System.out.println(array[i]);
      }else{
        System.out.print(array[i]+",");
      }
    }
  }
}

練習2:搭建java web項目寫一個servlet

運行結果截圖

運行結果截圖

工程截圖

工程截圖

HelloWeb.java代碼

package com.one.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloWeb
 */
@WebServlet("/HelloWeb")
public class HelloWeb extends HttpServlet {
  private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloWeb() {
        super();
    }

  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.getWriter().append("Served at: ").append(request.getContextPath());
    PrintWriter pw = response.getWriter();
    pw.print("hello world");
  }

  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章