java web開發相關概念以及環境搭建html
HTTP協議 Http:Hyper Text Transfer Protocol 超文本傳輸協議java
http協議規定了客戶端軟件和網絡服務器的通訊規則。數據有html文檔,音樂,圖片等文件。linux
http協議定義了8中方法,執行不一樣的操做。 get,post,options,head,put,delete,trace,connect 哦破訓 吹思 砍ne課特 選擇 發現 鏈接web
最經常使用的是get和post數據庫
web開發內容apache
重點作服務端的開發:包含如下內容小程序
第一:給用戶提供網頁的UI,而且用戶在進行不一樣操做時,能夠經過程序動態的給用戶提供不一樣頁面或數據(動態性) 第二:有了程序後須要把它部署在服務器上能夠供給全部用戶使用,經常使用的web服務器有tomcatwindows
使用myeclipse+tomcat搭建java web項目 目前使用 apache-tomcat-6.0.16 免安裝版 解壓到d盤目錄 startup.bat 是windows啓動執行文件 運行tomcat6.0.16 startup.sh 是linux 系統啓動執行文件瀏覽器
打開myeclipse windows > preferences > myeclipse > servers>tomcat> tomcat 6.x >browse 選中剛剛解壓的apache-tomcat-6.0.16目錄 會自動導入3個包而後啓動tomcat > starttomcat
配置成功後咱們建立第一個web project小程序 發音(撲ra接可特)詞意(工程)
xml是咱們如今接觸的第一個配置文檔
<welcome-file-list>標籤能夠配置初始頁面 把建立的第一個web project部署到tomcat6.0裏面
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
改爲utf-8反正亂碼
servlet技術 發音(舌V累特)詞意(小服務器程序)
javax包必定是web開發相關
HttpServletRequest Request 發音(瑞kua死特)詞意(請求) HttpServletResponse Response 發音(瑞死棒死)詞意(響應)
response.setCharacterEncoding 設置漢字亂碼方法 發音(克瑞K特 因扣頂)詞意(字符編碼)
servlet有生命週期 init方法裏面寫數據庫的初始化 由於鏈接數據庫只須要鏈接一次 這個方法恰好只執行一次 啓動》加載》init()方法調用進行初始化,只執行一次》等待用戶請求 get(doget) 超級連接 post(dopost)表單提交 》銷燬,調用destroy方法 低思腳以 給你清空資源
destroy 發音(弟死quai) 詞意(銷燬)
servlet 的生命週期能夠改變
<servlet></servlet>能夠有多個,mapping必定要配置
<welcome-file-list> 配置初始化頁面
編寫servlet的重點在請求處理階段。是整個編碼的核心。
第一個doget方法 包含兩個參數:httpservletrequest和httpservletreponse
httpservletrequest :http請求對象。是服務器在接收用戶請求後給咱們封裝的對象,全部與請求相關的數據(例如地址,參數,數據,文件。客戶端ip等)都被包含在這個對象內。
httpservletreponse:http響應對象。經過這個對象給用戶響應內容。好比網頁或cookie
response對象能夠獲得一個輸出流對象
response.setcontenttype("text/html;charset=gb2312");解決網頁亂碼
深刻了解servlet技術
servlet如何獲取用戶提交的表單數據
request.getParameter();方法 發音(pa rua 們 特)詞意:參數
<form>表單內的屬性 action 發音(a 可信) 詞意(開始)傳入一個絕對路徑 method 發音(ma 舍的)詞意(方法) 屬性改變表單提交的方式方法 method="get" 或者"post"
數據庫亂碼使用:request.setCharacterEncoding("UTF-8"); 網頁亂碼:response.setContentType("text/html;charset=gb2312");
request.getContextPath()這個方法能夠獲得當前項目的路徑
servlet中讀取自身初始化參數 servlet必須配置在web.xml中才能夠使用,除了配置常規外,咱們還能夠有一些可選的配置供咱們使用。
servlet初始化的配置,加載的配置 能夠控制用戶第一次訪問servlet的時間
須要xml文件內使用標籤<load-on-startup>0</load-on-startup> 假如這個標籤沒有配置或者是負數,那麼servlet會在第一次訪問時建立而且初始化。若是這個值配置成>=0的時候 就會不須要訪問就會調用init方法,會在web服務器啓動的時候建立並初始化。對於有多個servlet的時候,這個值越大,啓動的優先級就越底。
servlet讀取上下文參數 有時候咱們但願配置一個參數,能夠在全部的servlet內能夠讀取怎麼辦呢?
使用標籤<context-param>發音(康特可死特)詞意(上下文) </context-param> 這個標籤就不是配置在<servlet>標籤內而是在外面 這是全局變量
配置好了全局變量後,咱們經過getServletContext()方法獲得 經過ServletContext 這個類實例化一個對象來接收返回的參數。 而後經過實例化的對象點出this.getInitParameter("name")方法來獲得值
在xml配置文件中配置參數對軟件的擴展性是有幫助的,假如目前有變量須要在不少的地方使用。因此只須要在xml配置一個全局變量,全部的servlet均可以使用到。
咱們能夠通 sendRedirect方法跳轉到指定的html頁面 可是必須在你沒有向 response 輸出任何東西以前,看下面的例子
response.setCharacterEncoding("utf-8"); String uname=request.getParameter("username"); String password=request.getParameter("pwd"); String path=request.getContextPath(); if(uname.endsWith("admin")&&password.endsWith("admin")){ response.setContentType("text/html"); request.getRequestDispatcher(path+"/loginafresh.html").forward(request, response); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.println(uname+"登陸成功,歡迎來到java世界"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); }else{ response.sendRedirect("/tomcatone/loginafresh.html"); }
session 會話 只要有鏈接的都是會話 瀏覽器和服務器之間的會話 會話能夠保留很長的時間 session 和 cookie 之間是有某種聯繫的
session是服務器端 sessionid 是惟一的沒有重複 cookie 是瀏覽器端
session有一個過時時間 登陸後長時間不操做會失效 服務器的內存 長時間佔據會消耗服務器資源 因此當用戶長時間不操做後 咱們就把這個資源釋放
response.setCharacterEncoding("utf-8"); 或者gb2312 request.setCharacterEncoding("utf-8"); 設置編碼
pojp包裏面放不少的類 就是爲了傳值的 db 包裏面放 service 包放servlet的類 設圍斯 服務