轉自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217
首先,在開始搭建MyEclipse的開發環境之前,還有三步工具的安裝需要完成,只要在安裝配置成功之后才可以進入下面的java Web項目開發環境的搭建。
1、安裝工具
第一步,下載並安裝JDK,到官網上下載安裝即可,之后需要細心的配置環境變量,我給大家推薦百度文庫的一篇文章,猛戳這里。
第二步,下載Tomcat,當然可以去Apache Tomcat的官網,同樣,您可以移駕到我的資源下載,外送API文檔(免資源分)。
第三步,下載MyEclipse,MyEclipse官網,傻瓜式安裝即可。
=================================================================================
這篇博文是為下篇博文(Servlet編寫登錄HTML頁面和loginServlet)做鋪墊的,配置中的名字起的不好,僅供參考。
=================================================================================
2、搭建Web項目開發環境
然后,我們可以開始使用MyEclipse搭建java Web項目開發環境,只需要跟我一步步操作即可:
1、新建MyEclipse的工作空間
2、選擇工作空間的路徑
3、建立我們的Web項目
4、輸入Web項目的名稱,我們使用的是J2EE1.4,Finish之后一定要選擇No,如果選擇Y的話,MyEclipse就能使用jdk1.5的環境了。
5、此時我們的Web項目基本上就算完成了,下面這幅圖,我們大家詳細的介紹一下它的目錄。
3、配置服務器
雖然我們的Web項目建完了,但是此時不論是Html,還是Servlet,JSP都不能運行的,我們需要將他們部署到服務器上。服務器也叫Web容器,它就是一種所謂的中間件,Web容器實現了java的借口:servlet。Web容器啟動之后一直運行,它時刻監聽所有提交到它所監控的端口(默認:8080)的請求,並對此作出反映。
我們使用的Tomcat,當然你也可以使用其他的(配置方式基本相同)。不管是什么服務器,就跟我們發布.net的web項目時需要配置IIS,並發布項目的道理是一樣的。
下面我們配置Tomcat:
1、在菜單欄中找到window->preferences。配置Tomcat,選擇Tomcat解壓之后的路徑即可。
2、Apply之后,配置JDK,添加上它的安裝路徑即可。
3、此時我們的服務器就配置成功了,當我們需要運行項目是就可以部署我們的項目並啟動,我們就可以在瀏覽器中使用了。
servlet詳解:
Servlet是Sun公司提供的一門用於開發動態web網頁的技術。Sun公司在API中提供了一個servlet接口,我們如果想使用java程序開發一個動態的web網頁,只需要實現servelet接口,並把類部署到web服務器上就可以運行了。
到底什么是Servlet呢?
通俗一點,只要是實現了servlet接口的java程序,均稱Servlet。Servlet是由sun公司命名的,Servlet = Server + Applet(Applet表示小應用程序),Servlet是在服務器端運行的小程序。
編寫一個現實登陸的Servlet,並部署訪問
1、我們先寫一個簡單的HTML,可以在WebRoot新建,也可以復制一個寫好的HTML,我們用post提交方式,當然也可以用get提交,大家可以自己嘗試一下。
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>登錄</title>
- </head>
- <body>
- <form action="http://localhost:8080/loginServlet/LoginServlet" method="post">
- 用戶:<input type="text" name="username" /><br/>
- 密碼:<input type="password" name="password" /><br/>
- <input type="submit" value="登錄" />
- </form>
- </body>
- </html>
2、完成Servlet,在Web項目的src中右鍵新建一個類LoginServlet,輸入下面代碼即可。
- //引入所需要的包
- import java.io.*;
- import javax.servlet.*;
- import javax.servlet.http.*;
- public class LoginServlet extends HttpServlet {
- //重寫doGet方法
- public void doGet(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException,
- IOException {
- String username = request.getParameter("username");
- String password = request.getParameter("password");
- //服務器端打印信息
- //System.out.println("username=" + username);
- //System.out.println("password=" + password);
- //設置編碼格式
- response.setContentType("text/html;charset=GB18030");
- //返回html頁面
- response.getWriter().println("<html>");
- response.getWriter().println("<head>");
- response.getWriter().println("<title>登錄信息</title>");
- response.getWriter().println("</head>");
- response.getWriter().println("<body>");
- response.getWriter().println("歡迎【" + username + "】用戶登錄成功!!!");
- response.getWriter().println("</body>");
- response.getWriter().println("</html>");
- }
- //重寫doPost方法
- public void doPost(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException,
- IOException {
- doGet(request, response);
- }
- }
3、在WebRoot下的WEB-INF的web.xml,部署我們的Servlet,啟動服務器。
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <servlet>
- <servlet-name>MyServlet</servlet-name>
- <servlet-class>LoginServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>MyServlet</servlet-name>
- <url-pattern>/LoginServlet</url-pattern>
- </servlet-mapping>
- </web-app>
4、一定要啟動服務器,之后在瀏覽器中輸入你的URL,此時我們就可以調用Servlet了,我們看一下運行結果。
實例的demo:http://download.csdn.net/detail/jiuqiyuliang/7593641
==============================================================================================================================
如果不知道怎么配置java Web項目,可以移駕到我的上篇博客(一步步教你使用MyEclipse搭建java Web項目開發環境(一)),下面我們詳細介紹Servlet的基礎知識。
==============================================================================================================================
Servlet基礎
1、解讀API文檔,純手工編寫一個Servlet程序,並部署訪問(如上所示)。
解讀API對於拒絕學習API的程序員們是一種煎熬,但它卻是我們學習和進步的最好工具,且學且珍惜。
大家可以在點進去看一看,從上圖,可以看出Servlet接口定義三個實現類,分別是FacesServlet, GenericServlet, HttpServlet。下面我們簡單的介紹一下。
2、Servlet接口實現類
(1)FacesServlet是一個用於管理利用JSF(JavaServer Faces)構建用戶界面的web應用程序請求處理生命周期的Servlet。(FacesServletis a servlet that manages the request processing lifecycle for web applications that are utilizing JavaServer Faces to construct the user interface.),大家如果想深入的學習,可以點這里。
(2)GenericServlet是HttpServlet的父類,包含了servlet的常用方法。GenericServlet使得程序員寫servlets更加簡單,它提供了初始化和銷毀生命周期的方法,以及實現了寫日志文件的方法。
(3)HttpServlet指能夠處理HTTP請求的servlet。這是開發人員在編寫Servlet時,通常應繼承這個類即可。
對於這三個實現類,只為大家做一個簡單的介紹,如果想深入的研究,直接看API就好。
3、Servlet部署
客戶端通過URL地址訪問web服務器中的資源,所以若想訪問Servlet必須要把servlet程序映射到一個URL地址上,在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成,如上面的實例。
*<servlet>用於注冊Servlet,包含了<servlet-name>和<servlet-class>兩個子元素,分別用於設置servlet的名稱以及servlet的類名。
*<servlet-mapping>用於映射上面<servlet>中的對外訪問路徑,同樣包含<servlet-name>和<url-pattern>兩個元素,分別用於設置servlet的名稱以及servlet的對外訪問路徑。
在servlet映射到URL有兩種格式:
1.“*.擴展名”
2.以正斜杠(/)開頭並以“/*”結尾。
servlet對url的匹配規則以及路徑問題,大家可以上網查,有很多相關的資料,例如:http://blog.csdn.net/xh16319/article/details/8014107
4、Web服務器調用Servlet過程(Servlet生命周期)
servlet程序是由web服務器調用,web服務器實現了對servlet生命周期的管理。servlet的生命周期分為四步:
1)實例化以及加載servlet,new的過程。
2)初始化init(ServletConfig)。
3)處理請求,調用servlet的service,doget,dopost方法將Request和Response,作為參數傳遞。
4)退出服務,調用destory方法釋放資源。
注意:
1、servlet只實例化一次。感覺有點單例模式的意思,大家可以研究一下Tomcat的實現原理。
2、init方法也只執行一次。servlet實例只創建一次,所以init初始化只調用一次。
5、Servlet線程安全問題
當多個客戶端並發訪問同一個Servlet時,web服務器會為每一個客戶端的訪問請求創建一個線程,並在這個線程上調用service方法,因此,service方法內如果訪問了同一個資源的話,就有可能引發線程安全問題。大家重點理解下面兩句即可:
(1) Servlet是單實例多線程的,如果存在可以修改的成員變量將會出現線程安全問題。
(2) 使用Servlet最好保證Servlet是無狀態的,也就是沒有可以修改的成員變量。