Java Web開發之Servlet、JSP基礎
有好多年不搞Java Web開發了,這幾天正好國慶放假,放鬆之餘也有興趣回頭看看Java Web開發技術的基礎。
我們都知道,Servlet是Java Web開發的重要基礎,但是由於Servlet開發相對繁瑣,程式碼量龐大而且不易維護,美工無法參與介面設計開發等不足,於是就誕生了jsp。jsp是對servlet開發模型的重要升級。有了jsp,Java Web開發技術才真正被廣泛使用。
一、Servlet
在Java Web開發當中,新建一個類繼承(派生)自HttpServlet類即可建立一個Servlet。
比如:
這段程式碼是在myeclipse工具當中建立servlet時自動生成的,可以看到我們新建的FirstServlet類繼承自HttpServlet。而且又實現了裡面的doGet(Get請求時呼叫的方法)、doPost(Post請求時呼叫的方法)、init(初始化物件)、destroy(銷燬物件)。值得注意的是我們採用了Annotation的方式進行了修飾,即:@WebServlet(name="firstServlet",urlPatterns={"/firstServlet"})。這是servlet3.0開始推薦的,以前採用的方式是在web.xml裡面新增servlet和servlet-mapping配置。比如:@WebServlet(name="firstServlet",urlPatterns={"/firstServlet"}) public class FirstServlet extends HttpServlet { /** * Constructor of the object. */ public FirstServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); 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.print(" This is "); out.print(this.getClass()); out.println(", using the GET method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); 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.print(" This is "); out.print(this.getClass()); out.println(", using the POST method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
<servlet> <servlet-name>firstServlet</servlet-name> <servlet-class>包名.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>firstServlet</servlet-name> <url-pattern>/firstServlet</url-pattern> </servlet-mapping>
上面的配置有幾點需要說明:
1、servlet裡面的servlet-class節點需要填寫servlet類的完整名稱(包名.類名)
2、servlet-mapping下的servlet-name節點的名稱要與servlet下的servlet-name節點的名稱一致,才能找到。
3、url-pattern下的url要加"/"
啟動tomcat,在ie中輸入localhost:8080/工程名/firstServet,即可瀏覽該頁面(Get請求)。8080埠是tomcat預設設定的埠號,可以在tomcat/conf/下面的server.xml檔案中修改埠號。比如我們修改了預設埠號為8088,重新啟動tomcat(載入xml)以後,訪問的url即為:localhost:8088/工程名/servlet對映的urlpattern名。
<Connector port="8088" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
最後需要說明的是,如果我們在servlet裡面修改了程式碼,比如重新輸出了一段html表格,要重新編譯、部署到tomcat web容器執行,不像jsp是即時編譯的。可以看到servlet裡面都是一行一行輸出內容(out.println方法),所以現在基本上不會採用純servlet開發Java Web專案,而是讓其作為MVC的C(Controller,控制器)來使用。
二、jsp
正是由於純servlet開發Java Web應用非常繁瑣,而且美工和程式設計師無法很好的合作,jsp應運而生。jsp通過頁面嵌入程式碼、標籤庫(比如JSTL,Java標準標籤庫)等手段,可以直接在頁面中混入Java程式碼,從而簡化開發。但是jsp的本質還是servlet,我們可以用文字編輯器(比如:editplus、notepad++)開啟tomcat/work目錄下的工程目錄裡面的classes檔案就可以看到,實際上jsp還是被編譯生成了servlet類檔案(一個jsp對應生成一個servlet)。裡面也有init、destroy、service(這個與之前的Get、Post、Put、Delete請求不同)等方法。
下面先演示一段從MySQL資料庫中通過JDBC讀取資料顯示在頁面上的功能,讓讀者快速上手jsp。
開發環境:
1、MySQL5.7
2、MyEclipse 2014、JDK7.0
MySQL安裝後自帶了一個MySQL Workbench工具,可以利用它新建資料庫。
點選OK,出現如下介面。
相關推薦
Java Web開發之Servlet、JSP基礎
有好多年不搞Java Web開發了,這幾天正好國慶放假,放鬆之餘也有興趣回頭看看Java Web開發技術的基礎。我們都知道,Servlet是Java Web開發的重要基礎,但是由於Servlet開發相對繁瑣,程式碼量龐大而且不易維護,美工無法參與介面設計開發等不足,於是就誕生
Java Web開發之Servlet獲取ckeditor內容
js: <!-- ckeditor外掛 --> <script type="text/javascript" src="js/ckeditor/ckeditor.js">
Java Web中的servlet、jsp、session等的用法。
1、當伺服器響應客戶端之後,request和response會立即銷燬,在客戶端去訪問伺服器的時候就開啟Servlet,當Servlet開啟之後就會產生request和response。 2、訪問Servlet的6種方式:通過位址列輸入網址提交訪問(直接在瀏覽器上寫網址訪問
Java——Web開發之開源框架DBUtils的使用,JSP開發模式,三層架構與MVC設計模式的認識
DBUtils的使用: 在使用開源框架DBUtils時,它只是幫我們簡化了CRUD的程式碼,但是它不負責連線的建立以及獲取工作。 1.和使用開源框架都一樣的一個步驟,先匯入jar檔案 2.在這裡採用的是開源資料庫連線池C3P0進行連線 3.編寫CRUD程式碼 使用其功
Java——Web開發之JSP,EL與JSTL的使用
JSP:從使用者角度來看是一個網頁,從開發人員來看就是一個java類,繼承了servlet,所以實際上就是一個servlet。 1.jsp的三大指令 指令的寫法 <%@ 指令名字 %> 1.page指令
JAVA Web學習之servlet開發
01、servlet開發入門 動態web資源開發有兩種技術:Servlet和JSP,只有把Servlet學明白了才能學JSP。 Sun公司在其API中提供了一個Servlet介面,使用者若想用一個動態web資源(即開發一個java程式向瀏覽器輸出資料),需要完成以下2個步驟
JAVA Web開發之XML基礎和DTD約束
語法格式: <!ENTITY % 實體名稱 "實體內容" > 引用方式: %實體名稱; 舉例1: <!ENTITY % TAG_NAMES "姓名 | EMAIL | 電話 | 地址"> <!ELEMENT 個人資訊 (%TAG_NAMES; | 生日)&g
Java Web組件Servlet、Filter、Listener
繼承 一個 tex 請求 父類 服務器 監聽 alt tco 一、Servlet 類javax.servlet.http.HttpServlet; 1.是單例模式,一個web容器中只有一個實例。服務器調用它的service方法進行請求處理, service方法
Java——Web開發之開源的資料庫連線池(C3P0與DBCP)的使用
緊接上一篇資料庫連線池的學習,點連線直達~ 資料庫連線池的簡單理解與使用 資料庫連線池DBCP程式碼連線與配置檔案: 1.先匯入使用的jar檔案,分別是dbcp.jar與pool.jar檔案 2.分別使用兩種方式實現,使用配置檔案(dbcpconfig.
Java——Web開發之事務與資料庫連線池
事務:指的是一組操作,裡面包含許多個單一的邏輯,只要有一個邏輯沒有執行成功,那麼都算失敗,所有的資料都回到最初的狀態。事務在預設情況下是自動提交的。(事務指標對連線物件) 1.事務的簡單使用 1).關閉自動提交的設定 conn.setAutoCommit(fal
Java——Web開發之簡單的學生資訊管理系統
這僅僅是一個跟著視訊學習的小系統,大牛就繞道啦~ 系統實現的功能: 與mysql資料庫連線,實現登陸功能 管理員登陸成功後能檢視學生資訊 擴充套件功能(完成刪除與更新學生資訊的操作) 系統實現過程: 寫一個簡單的登陸
Java——Web開發之Session的使用
Session會話:是基於Cookie的一種會話機制,資料存放在伺服器端。 Session建立:如果有在Servlet裡面呼叫了request.getSession()。 Session銷燬:session會話時間過期或者關閉伺服器就會被銷燬。設定會話時間過期時間到伺
Java——Web開發之Cookie的使用
Cookie:是伺服器給客戶端,並且儲存在客戶端上的一份小資料。 應用場景:自動登陸,瀏覽記錄,購物車 http請求是無狀態的。客戶端與伺服器在通訊的時候,是無狀態的,其實就是在客戶端在第二次來訪的時候,伺服器根本就不知道客戶端以前有沒有來訪問過。為了更好的使用者體驗
Java——Web開發之MVC設計模式的學生資訊管理系統(二)
為什麼這個標題為“(二)”,其實是對於上一個特別簡單學生資訊管理系統裡功能的完善。 所謂的“(一)”在這:學生資訊管理系統(一) 系統實現的功能: 實現新增學生 顯示查詢到的學生 刪除學生 更新學生資訊 模糊查詢符合相關資訊的學生
《Java Web開發之道》介紹
全書分為6篇,共計12章內容,全面介紹了學習和應用Java Web進行程式開發的各種陷阱與謬誤、技術細節與經驗技巧、常用的演算法及解決方案。其涉及的技術主要包括JSP、Servlet、JDBC、JavaScript、CSS、AJAX和資料庫應用等基礎知識,jQuery、報表列
Java Web開發中的Servlet、jsp區別聯絡
1、HTTP協議必備知識 2、servlet、jsp在網站開發中所辦的角色 servlet與JSP區別與聯絡 servlet 看做是含有HTML的Java程式; JSP 看做是含有Java程式碼的HTML頁面。 JSP頁面會被編譯成servl
java web 開發入門 --- tomcat/servlet/jsp
title 啟動服務 軟件 完成後 idt head font pac tom 在做java web 開發時,首先就要安裝tomcat。tomcat是什麽呢?它就是一個web服務器,也叫web容器,我們把寫好的代碼(jsp, html)放到它裏面,然後啟動它,就可以從外
Web基礎之Servlet+JDBC+JSP專案實戰記錄(一)
package com.huaxin.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sq
商城專案小總結(基於jsp和servlet的Java Web開發)
商品的查詢和刪除操作與往常一致,這裡著重說明的是商品的新增和修改。新增商品需要上傳照片,因此要用到檔案上傳下載的知識。檔案的上傳流程大致為:首先建立一個檔案解析工廠,接著通過解析工廠建立一個檔案解析器,解析器是用來解析request物件中的資訊,就是新增商品jsp頁面中,input輸入框中的name屬性。解
tomcat8.5基礎 相應的Servlet、JSP的版本信息
技術 com cat eight detail ima img html 感恩 禮悟: 好好學習合思考,尊師重道存感恩。葉見尋根三返一,江河湖海同一體。 虛懷若谷良心主,願行無悔給最苦。讀書鍛煉強身心,誠勸且行且珍惜。 參考鏈接:http://t