原文:http://blog.csdn.net/lovesummerforever/article/details/8980325
首先說說我們的Tomcat7.0的目錄結構:
包括目錄:
bin
conf
lib
logs
temp
webapps
work
bin文件:
存放各種平臺下啓動和關閉Tomcat的腳本文件。
startup.bat是windows下啓動tomcat的文件。
shutdown.bat是關閉tomcat的文件。
conf目錄:
Tomcat的各種配置文件,tomcat啓動時需要讀取的配置文件:server.xml
lib目錄:
存放Tomcat所需的各種jar文件。
logs目錄:
存放Tomcat的日誌文件。
temp目錄:
臨時文件目錄,用於存放Tomcat運行時的臨時文件。
webapps目錄:
web應用的發佈目錄,把java編寫的web應用或打包成的war格式的web應用文件放入該目錄下,就能通過Tomcat服務器訪問了。
work目錄:
Tomcat把JSP文件編譯生成Servlet文件存放在這個目錄下。
數據傳送流程:
java servlet:
我們要在webapps目錄下建立一個我們javaweb項目的目錄結構test_servlet:
WEB-INF/classes web.xml lib
lib文件:存放java包,數據庫驅動程序等等。
classes文件:存放已編譯好的類。
Web.Xml:配置一些信息,例如Servlet的配置,名字,路徑等,告訴我們的Tomcat我們使用的哪個Servlet。
我們依次來寫:
servlet代碼:
- <span style="font-size:14px;">//引入java的包。
- import javax.servlet.http.*;
- import java.io.*;
- import javax.servlet.*;
- //第一個Servlet程序。
- public class LoginServlet extends HttpServlet
- {
- //指定調用哪個servlet。
- //get提交和post提交兩種方式。
- 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);
- //向瀏覽器上寫數據。可以有流。字符流。
- //setContext設置響應的內容類型。設置爲html類型或者中文。
- response.setContentType("text/html;charset=GB18030");
- //response.getWriter().println("Login Success!!!");
- //response.getWriter().println("登錄成功!!!");
- 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>");
- }
- //採用post的提交方式。
- public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
- {
- doGet(request,response);
- }
- }</span>
雖然我們引入了jar包,但是程序是否能從找到tomcat的servlet jar包,我們需要配置一下用戶的環境變量,把lib\servlet-api.jar包配置到classpath變量。當然tomcat也是java編碼的,所以我們也配置一下JAVA_HOME變量,可以在tomcat的批處理命令startup.bat中進行配置,set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_43。
然後把這個java文件編譯成.class 文件,放到classes文件夾中。
html代碼:
- <span style="font-size:14px;"><html>
- <head>
- <title>登錄</title>
- </head>
- <body>
- <!--這是絕對路徑-->
- <!--相對路徑寫法:action="LoginServlet"-->
- <form action="http://127.0.0.1:8080/test_servlet/LoginServlet">
- 用戶:<input type="text" name="username"><br>
- 密碼:<input type="password" name="password"><br>
- <input type="submit" value="登錄">
- </form>
- </body>
- </html></span>
Web.Xml :
- <span style="font-size:14px;"><?xml version="1.0" encoding="ISO-8859-1"?>
- <web-app xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- version="3.0"
- metadata-complete="true">
- <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></span>
啓動Tomcat就可以執行成功。
下面是servlet的調用過程,也可以用HTTPLook軟件來跟蹤:
作爲一個java的初學者來說,開始一個servlet讓我很模糊,什麼是servlet呢?有道上說是servlet(小服務程序),學過了發現,也是26個英文字母的組合,其實說白了就是java代碼,但是因爲他的用途,人們給他抽象總結了一個層次,叫做servlet,。就相當於縣長首先是人,再是縣長~,貌似搞得這兒複雜~不也是個幹活的麼~
同樣是網頁,.net開發的網頁和java開發的有什麼區別呢?.net中有沒有servlet?據說.cs文件寫“servlet”就相當於servlet了。呵呵,有待更深的研究,加油!