“人生如一杯茶,不會苦一輩子,但要苦一陣子。”
你好,我是夢陽辰!和我一起學習起來吧!
文章目錄
Java EE實質上是sun(oracle)公司為我們提供的強大的類庫。
Java SE實質就是sun(oracle)公司提供的一套基礎的類庫。
Java EE是 J2EE的一個新的名稱,之所以改名,目的還是讓大家清楚J2EE只是Java企業應用.隨着WEB和EJB容器概念誕生,使得軟件應用業開始擔心SUN的伙伴們是否還在Java平台上不斷推出翻新的標准框架,致使軟件應用業的業務核心組件架構無所適從,從一直以來是否需要EJB的討論聲中說明了這種彷徨。
在2004年底中國軟件技術大會Ioc微容器(也就是Jdon框架的實現原理)演講中指出:我們需要一個跨J2SE/WEB/EJB的微容器,保護我們的業務核心組件(中間件),以延續它的生命力,而不是依賴J2SE/J2EE版本.此次J2EE改名為Java EE,實際也反映出業界這種共同心聲。
Java EE的核心是EJB3.0, 其提供了更兼便捷的企業級的應用框架。
1.什么是JavaSE?
Java的標准版本
sun公司為java程序員提供的一套基礎類庫。這套基礎類庫包括基礎語法、面向對象、異常、IO、集合、反射、線程
目前JavaSE由Oracle公司維護。
2.什么是API?包括什么?
應用程序接口
API包括:源碼、字節碼、幫助文檔
3.JavaSE的src、字節碼、幫助文檔在哪里?
JAVA_HOME\src.zip
JRE_HOME\lib\rt.jar
幫助文檔,官網。
4.什么是JavaEE?
Java企業版
SUN公司為Java程序員准備另一套龐大的類庫,幫助程序員完成企業級項目開發。
JavaEE規范是一個比較大的規范,JavaEE包括13個子規范(每一個子規范下其實還有其他的子規范)
JavaEE5規范下的子規范:
Servlet2.5
JDBC
JavaEE6規范下的子規范。
Servlet3.0
Tomcat服務器,其中Tomcat6實現了Servlet2.5規范,Tomcat實現了Servlet3.0規范。
5.JavaEE的源碼、字節碼、幫助文檔在哪里?
系統架構分類
C/S
B/S
什么是C/S呢?
各種app。
優點:大部分數據都以集成到客戶端軟件中,只需要從服務器上傳送少量數據即可。速度快。
升級麻煩。
什么是B/S呢?
客戶端為瀏覽器。不需要安裝特定的客戶端。升級方便。
缺點:速度慢,體驗差。
以后主要的研究方向。
BS架構訪問過程
注意:Servlet接口由程序員實現,服務器來調用。
Servlet:是兩個英語單詞的合並,Serv表示服務器端,let表示小程序。
Java Servlet 是運行在 Web 服務器或應用服務器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的數據庫或應用程序之間的中間層。
使用 Servlet,您可以收集來自網頁表單的用戶輸入,呈現來自數據庫或者其他源的記錄,還可以動態創建網頁。
知識引入:
1.Sun公司制定的JavaEE規范:Servlet規范
Servlet接口是Servlet規范中核心接口
接口注意:調用這是誰?實現者是誰?
public interface Servlet{//Servlet接口 void service(); }
2.JavaWeb程序員
JavaWeb編寫服務器端小java程序的時候,不能隨意編寫,必須實現Servlet接口。
public class DeleteServlet implements Servlet{ public void service(){ System.out.println("連接數據庫,成功..."); } }
3.Tomcat服務器調用(自動調用)
WebServer Web服務器 ,Web Container
Web容器面向Servlet接口調用。
模擬Tomcat服務器
Tomcat服務器負責調用。2
作為Web程序員我們只要實現Servlet接口,並配置號.xml文件即可。
1.一個webapp只有一個web.xml文件。
web.xml文件主要配置請求路徑和Servlet類名之間的綁定關系。
web.xml文件在Tomcat服務器啟動階段被解析。解析失敗會導致webapp啟動失敗。web.xml文件中的標簽不能隨意編寫。
在項目目錄下必須有一個WEB-INF文件夾。並且在WEB-INF文件夾下必須有classes文件夾,lib文件夾和web.xml配置文件。
.class文件放在classes文件夾下。
實例:
編寫Java程序,將編譯生成的class文件放在classes目錄下。
配置web.xml
注意對於xml配置文件的<url-pattern>中的路徑不需要添加項目名。 但是對於Hello.html的文件的超鏈接需要在前面添加項目名,因為超鏈接可能 會轉到其他項目中,也可能轉到其他網站,所以需要在其前面添加項目名稱。
java代碼:(其它類似)
package Part1; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class MengYangChenWorkers implements Servlet { @Override public void destroy() { // TODO Auto-generated method stub } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return null; } @Override public String getServletInfo() { // TODO Auto-generated method stub return null; } @Override public void init(ServletConfig arg0) throws ServletException { // TODO Auto-generated method stub } @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out=response.getWriter(); out.print("<html>"); out.print("<head>"); out.print("<title>員工信息</title>"); out.print("</head>"); out.print("<body>"); out.print("<h2 align='center'>員工列表</h2>"); out.print("<hr width='60%'>"); out.print("<table border='1' align='center' width='50%'>"); out.print("<tr align='center'>"); out.print("<th>編號</th>"); out.print("<th>姓名</th>"); out.print("<th>性別</th>"); out.print("<th>部門</th>"); out.print("<th>生日</th>"); out.print("</tr>"); //JDBC Connection conn=null; PreparedStatement ps =null; ResultSet rs= null; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/newdata","root","0910"); String sql="select num,name,sex,classnum,birthday from t_student"; ps=conn.prepareStatement(sql); rs=ps.executeQuery(