java web

一、java web

  • 基於javaEE,須要在該框架的容器和組件支持下完成。
  • 以分佈式組件集合的形式存在(即由軟件組件構成),而分佈式軟件組件在其各自的容器中運行。
  1.一、容器
  • 指的是提供特定程序組件服務的標準化運行環境,客戶經過這些組件能夠在javaEE平臺上獲得所指望的服務。
  • 做用:爲組件提供標準化服務(部署、執行、生命週期管理、安全等)和API接口

 

包括:javascript

  (1)、Applet容器。負責在web瀏覽器和java插件上運行java applet程序,對應於用戶界面層。如今少用了。php

  (2)、應用客戶端容器。負責web應用在客戶端組件的運行,對應於用戶界面層。css

  (3)、web容器。管理jsp和servlet等組件的運行,主要負責web應用與瀏覽器的通訊。對應於表示層。html

  (4)、EJB容器。爲Enterprise JavaBean組件提供運行環境。主要負責數據處理以及和數據庫或其餘java程序的通訊。對應於業務層和數據訪問層。java

  1.二、組件
  • 指在應用程序中發揮特定功能的軟件單位。實質就是在功能和使用上被標準化的幾種特定java程序。 

 

分類:node

  (1)、客服端組件。Applet和客戶端應用程序。web

  (2)、web組件。web容器中的jsp、servlet、過濾器和監聽器。ajax

  (3)、EJB組件。EJB容器中的EJB組件sql


 

二、java web開發技術

一個完整的web應用程序一般由以下組件構成:數據庫

  (1)、表示層(視圖)。通常由html和jsp頁面。

  (2)、控制層。servlet。

  (3)、業務邏輯層。JavaBeab或EJB。

  (4)、數據訪問層(持久層)。jdbc、hibernate。


  

  【1】、html


  

  【2】、css


  

  【3】、javascript


  

  【4】、jsp

  • Java Server Page, Java EE 組件,本質上是 Servlet。
  • 運行在 Web Container.接收 Http Request,生成 Http Response(默認協議是 Http 請求和響應)
  • JSP 使得咱們可以分離頁面的靜態 HTML 和動態部分——咱們須要的技術。
  • 使頁面能夠混和html代碼、Java代碼以及JSP標籤;容許訪問組件

標記:

  (1)、jsp指令標記。page、include、taglib。

  (2)、jsp動做標記。include、forward、param、useBean、setProperty、getProperty。

  (3)、jsp成員聲明標記。聲明全局變量。

  (4)、jsp程序片。

  (5)、jsp表達式。

重要內置對象:

  (1)、request

    重要方法:set/getAttribute()、set/getParameter()、getCookie()、set/getCharacterEncoding()

  (2)、response

    重要方法:setCharacterEncoding()、setContentType()、sendRedirect()能夠跳轉到任意頁面且不帶request信息。setHeader()能夠定時刷新或定時重定向網頁等操做。

  (3)、out

  (4)、session

    重要方法:getId()、set/getAttribute()、idNew()、getCreationTime()、getLastAccessedTime()

  (5)、application

    只要不關閉服務器將一直存在。全部用戶共享。


  

  【5】JDBC

Dao設計模式:實現了業務數據的對象化封裝,數據訪問和業務邏輯的分離。

  四個組件:

    DBUtils工具類---負責數據庫的鏈接與關閉

    Dao接口---定義增刪該查的抽象方法,一個領域模型對應一個Dao接口。

    Dao接口的實現類

    VO值對象---一個VO對應一個數據表,便於把對數據表的操做轉化成對java類的操做。

  


 

數據源與鏈接池技術


  

  【6】JavaBean

  • 遵循必定規範的java類;
  • 封裝了數據和業務邏輯;
  • 供jsp和servlet調用。

  

  【7】servlet

按照servlet規範編寫、由服務器調用和執行的服務器端程序。

繼承自父類HttpServlet的重要方法:

  init():全局執行一次。

  service():根據請求類型會調用doGet()和doPost()方法。

  doGet()。

  doPost()。

  destroy():servlet對象註銷時自動調用。

這些方法構成了servlet的生命週期,即建立、服務、消亡。

內置對象:

  request、respose、session(request.getSession()獲取)、out(request.getWriter())


 

servlet組件和jsp組件能夠經過request、session、application、cookie和javaBean實現數據共享。


  

  【8】基本編程模式

(1)、jsp

(2)、jsp+javaBean

(3)、jsp+servlet

(4)、jsp+servlet+javaBean

(5)、jsp+servlet+javaBean+Dao模式


  

  【9】EL和JSTL

EL與JSTL目的都是爲了:提升開發效率,減小頁面中jsp代碼的數量、保持頁面的簡潔和可讀性、可維護性。都做用在jsp頁面表示層。


EL(Expression Language):表達式語句。

做用:獲取範圍變量的值,並在頁面上顯示出來。


 

這裏的「範圍變量」包括:

  一、內部對象:jsp(pageContext)、做用域(pageScope、requestScope、sessionScope、applicationScope)、請求參數(param、paramValues)、cookie(cookie)、請求頭(header、headerValues)

  二、集合、數組

  三、javaBean

  四、其餘對象或數據結構

JSTL(JSP Standard Tag Library):jsp標準標籤庫。


 

分類:

  一、核心庫:c,操做變量、流程控制、url生成和操做

  二、函數:fn,字符串處理函數

  三、數據庫操做:sql,操做關係數據庫

  四、格式化:fmt,數字機日期的格式化、頁面國際化

  五、XML處理:x,操做Xml數據


  

  【10】Ajax

  運用js和xml實現瀏覽器和服務器異步通訊的一種技術。實現頁面的局部刷新和顯示。

  js原生Ajax:使用瀏覽器內置的ajax引擎完成異步通訊

    (1)建立Ajax引擎對象

    (2)綁定監聽、接受響應數據的處理

    (3)提交地址

    (4)發送請求

 1 <html>
 2 
 3   <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 5     <title>AJAX實例</title>
 6     <script language="javascript" type="text/javascript">    
 7 
 8      var xmlHttpRequest;  //定義一個變量用於存放XMLHttpRequest對象
 9       
10       function createXMLHttpRequest(){
11         if(window.ActiveXObject){//IE瀏覽器的建立方式
12           xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
13         }else if(window.XMLHttpRequest){ //Netscape瀏覽器中的建立方式
14           xmlHttpRequest = new XMLHttpRequest();
15         }
16       }
17 
18       
19       function httpStateChange(){//判斷異步調用是否完成
20         if(xmlHttpRequest.readyState == 4){
21           //判斷異步調用是否成功,若是成功開始局部更新數據
22           if(xmlHttpRequest.status == 200||xmlHttpRequest.status == 0){//查找節點
23             var node = document.getElementById("myDIv");//更新數據
24             node.firstChild.nodeValue = xmlHttpRequest .responseText;
25           } else{
26             alert("異步調用出錯/n返回的HTTP狀態碼爲:"+xmlHttpRequest.status + "/n返回的HTTP狀態信息爲:" + xmlHttpRequest.statusText);
27           }
28         }
29       }
30 
31       //ajax異步操做
32       function getData(name,value){
33         createXMLHttpRequest();//建立XMLHttpRequest對象
34         if(xmlHttpRequest!=null){
35           xmlHttpRequest.open("get","ajax.text",true)//建立HTTP請求
36           xmlHttpRequest.onreadystatechange = httpStateChange;//監聽,接受數據並處理
37           xmlHttpRequest.send(null);//發送請求
38         }
39       }
40 
41     </script>
42 
43   </head>
44 
45 
46   <body>
47       <div id="myDiv">原數據</div>
48 
49       <input type = "button" value = "更新數據" onclick = "getData()">
50 
51      </body>
52 </html>
ajax實例

  Jquery中的Ajax:對js原生的ajax進行了封裝,封裝後的ajax的操做方法更簡潔,功能更強大

 

    重要方法:

      jQuery.ajaxSetup()---設置未來的 Ajax 請求的默認值。

      jQuery.ajax()---執行異步 HTTP (Ajax) 請求。

      jQuery.get()---使用 HTTP GET 請求從服務器加載數據。

      jQuery.getJSON()---使用 HTTP GET 請求從服務器加載 JSON 編碼數據。

      jQuery.post()---使用 HTTP POST 請求從服務器加載數據。

 

      序列化方法:

        jQuery.param()---建立數組或對象的字符串序列化表示,適合在 URL 查詢字符串或 Ajax 請求中使用。

        serialize()---將表單內容序列化爲字符串。

        serializeArray()---將表單內容序列化爲JSON數組。

 1 $.ajax({
 2     url:'/comm/test1.php',
 3     type:'POST', //GET
 4     async:true,    //或false,是否異步
 5     data:{
 6         name:'yang',age:25
 7     },
 8     timeout:5000,    //超時時間
 9     dataType:'json',    //返回的數據格式:json/xml/html/script/jsonp/text
10     beforeSend:function(xhr){
11         console.log(xhr)
12         console.log('發送前')
13     },
14     success:function(data,textStatus,jqXHR){
15         console.log(data)
16         console.log(textStatus)
17         console.log(jqXHR)
18     },
19     error:function(xhr,textStatus){
20         console.log('錯誤')
21         console.log(xhr)
22         console.log(textStatus)
23     },
24     complete:function(){
25         console.log('結束')
26     }
27 })
View Code

 

  【11】過濾器

  主要用來來接用戶請求,實現如權限檢查、編碼轉換、加密、站點訪問權限控制等通用的「橫向」模塊。


  

  【12】監聽器

主要用來監聽web應用的上下文信息、servlet請求、session會話等信息,並自動根據不一樣狀況,在後臺調用相應的處理程序。

除了監聽ServletContext、HttpSession、ServletRequest等對象自己的變化(建立、銷燬),還能夠監聽對象中屬性的變化(增、刪、改)

相關文章
相關標籤/搜索