1. 程式人生 > >Java Web開發之Servlet、JSP基礎

Java Web開發之Servlet、JSP基礎

有好多年不搞Java Web開發了,這幾天正好國慶放假,放鬆之餘也有興趣回頭看看Java Web開發技術的基礎。

我們都知道,Servlet是Java Web開發的重要基礎,但是由於Servlet開發相對繁瑣,程式碼量龐大而且不易維護,美工無法參與介面設計開發等不足,於是就誕生了jsp。jsp是對servlet開發模型的重要升級。有了jsp,Java Web開發技術才真正被廣泛使用。

一、Servlet

在Java Web開發當中,新建一個類繼承(派生)自HttpServlet類即可建立一個Servlet。

比如:

@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
	}

}
這段程式碼是在myeclipse工具當中建立servlet時自動生成的,可以看到我們新建的FirstServlet類繼承自HttpServlet。而且又實現了裡面的doGet(Get請求時呼叫的方法)、doPost(Post請求時呼叫的方法)、init(初始化物件)、destroy(銷燬物件)。值得注意的是我們採用了Annotation的方式進行了修飾,即:@WebServlet(name="firstServlet",urlPatterns={"/firstServlet"})。這是servlet3.0開始推薦的,以前採用的方式是在web.xml裡面新增servlet和servlet-mapping配置。比如:
<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開發ServletJSP基礎

有好多年不搞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中的servletjspsession等的用法。

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組件ServletFilterListener

繼承 一個 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開發中的Servletjsp區別聯絡

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

商城專案小總結(基於jspservletJava Web開發

商品的查詢和刪除操作與往常一致,這裡著重說明的是商品的新增和修改。新增商品需要上傳照片,因此要用到檔案上傳下載的知識。檔案的上傳流程大致為:首先建立一個檔案解析工廠,接著通過解析工廠建立一個檔案解析器,解析器是用來解析request物件中的資訊,就是新增商品jsp頁面中,input輸入框中的name屬性。解

tomcat8.5基礎 相應的ServletJSP的版本信息

技術 com cat eight detail ima img html 感恩 禮悟:   好好學習合思考,尊師重道存感恩。葉見尋根三返一,江河湖海同一體。 虛懷若谷良心主,願行無悔給最苦。讀書鍛煉強身心,誠勸且行且珍惜。 參考鏈接:http://t