Servlet快速入門
一、tomcat 目錄
Servlet顧名思義,是服務器上運行的小程序。小程序的運行需要一定的運行環境,也就是WEB服務器,web容器多種多樣,但目前比較常用的是tomcat。所以首先要下載tomcat。 http://tomcat.apache.org/.
將tomcat解壓可以看到以下目錄:
每個目錄的作用:
Bin :目錄下存放的主要是一些腳本程序,包括tomcat的啓動與關閉程序
Conf :目錄下存放的是tomcat的配置文件包括:web.xml,server.xml等
lib :目錄下存放的是tomcat通用的一些jar包
logs:存放的是日誌文件
temp:則存放tomcat的一些臨時文件
webapp: 主要存放web應用程序,我們的應用程序基本都要放在這個目錄下。
Work :存放的是將jsp文件轉化爲servlet之所存放的目錄。
二、配置環境變量
解壓完tomcat之後就要進行環境變量的設置,如果沒有設置JDK的話首先要設置JDK。如果已經設置好JDK,直接進行tomcat環境變量的設置。
1、 設置JDK,需要設置一下幾個變量
JAVA_HOME : C:\Program Files\Java\jdk1.8.0_45
classpath : %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
path: %JAVA_HOME%\bin
注意用分號隔開。
2、 設置tomcat,需要設置一下幾個變量
CATALINA_HOME:D:\tomcat8
CATALINA_BASE:D:\tomcat8
Path: %CATALINA_HOME %\bin
classpath: %CATALINA_HOME%\lib\servlet-api.jar
三、Servlet
Servlet是服務器端運行程序,JSP從根本上來說就是Servlet,當我們寫好一個JSP頁面之後,tomcat會將JSP轉化成Servlet然後再運行。Servlet作爲一個接口包含一下幾種方法:
init() 初始化
service() 處理方法
getServletConfig() 獲取方法
getServletInfo() 獲取信息
destroy() 當servlet需要被清除時調用該方法
當客戶端發送來請求時,服務器會將請求封裝成一個ServletRequest類傳遞給Service進行處理,同時傳遞給Service一個ServletResponse類。
GenericServlet實現了Servlet類,同時HttpServlet繼承了GenericServlet類。
四、web應用目錄結構
|WEBAPPNAME
|WEB_INF
|classes
|lib
| web.xml
|html文檔
其中WEB_INF是無法通過外部進行訪問的。
五、舉個例子
1、編寫servlet
這是一個Servlet的例子,利用javac將其編譯成.class文件。
importjavax.servlet.servletException;
import java.io.*;
import javax.servlet.http.*;
public class Hello extendsHttpServlet{
public void doGet(HttpServletRequest request, HttpServetResponse response){
String name = request.getParameter("user");//獲取前臺頁面傳輸過來的參數
String password = request.getParameter("password");
PrintWriter pw = response.getWriter();//獲取寫出流
pw.write(name);
pw.write(password);
}
public void doPost(HttpServletRequest request, HttpServletResponse response){
doGet(request,response);
}
}
將編譯好的class文件放在classes裏面。
編譯好.class之後需要對web.xml
2、配置web.xml
<?xml version="1.0"encoding="ISO-8859-1"?>
<web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true">
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
</web-app>
其中<url-pattern>是對Servlet進行訪問是的url地址
<servlet-name>必須和<servlet>中的<servlet-name>相對應。<servlet-class>則是放在class裏的類名。
3、index.html文檔
<html>
<head>
</head>
<body>
<form action="Hello" method ="get">
<label>姓名:</label>
<inputtype="input" name = "user"></input>
<label>密碼:</label>
<inputtype="password" name = "password"/>
<inputtype="submit" value="提交"/>
</form>
</body>
</html>
根據上面的URL地址訪問index.html,填好姓名與密碼傳遞給servlet進行處理。
Servlet通過getParameter(“”)方法獲得參數值。然後進行相應的處理。