1. 程式人生 > >servlet學習(1)

servlet學習(1)

sun公司 troy clas dream 簡單 har pack res generics

1.Servlet是sun公司提供的一門用於開發動態web資源的技術。

2.Servlet在web應用的位置:

技術分享

3.創建Servlet的三種方式:
(1)實現servlet的接口

(2)繼承GenericServlet。覆寫service方法

(3)繼承HttpServle,覆寫doGet()或者doPost()等方法

註意:

1>GenericServlet實現了 ServletServletConfig接口. GenericServlet能夠直接被一個servlet擴充,雖然它更為一般的是用來擴充一個指定協議的子類,如HttpServlet.

GenericServlet 使得寫入 servlets更加簡單。

它提供了簡單的生命周期方法initdestroy,以及ServletConfig接口中的方法 的版本號。

GenericServlet 也實現了 log 方法,在ServletContext 接口中被聲明。

2>提供了一個能夠由之生成子類以為WEB網站創建HTTP servlrt 的抽象類。 HttpServlet的子類必須至少覆蓋一個方法。一般是下列方法中的一個:

  • doGet, 假設servlet 支持 HTTP GET 請求
  • doPost, 針對 HTTP POST 請求
  • doPut, 針對 HTTP PUT 請求
  • doDelete,針對HTTP DELETE 請求
  • initdestroy, 為管理為servlet的存在而鎖定的資源。
  • getServletInfo, servlet 用以提供關於器其自身信息。
4.不用IDE創建Servlet的方法:
(1) tomcat/webapps/文件夾下創建web應用mail。


文件夾結構例如以下
tomcat/webapps
|
mail
|
WEB-INF
| |
web.xml classes
|
cn.wwh.www.web.servlet.MyServlet.class




(2)tomcat/webapps/mail/文件夾下寫一個類MyServlet實現Servlet接口。


(3)進入cmd命令臺,增加servlet-api.jar[tomcat中有]支持
set classpath=%classpath%;D:\apache-tomcat-6.0.29\lib\servlet-api.jar(導入這個jar包)
(4) 進入MyServlet.java所在的文件夾,編譯MyServlet。


javac -d . MyServlet.java (編譯)
(5)部置mail應用到tomcat/webapps/文件夾下,並啟動Tomcat。


(6)一定要在web.xml文件裏配置MyServletWeb動態資源
<servlet>
<servlet-name>MyServlet</servlet-name>(一般寫類名為好)
<servlet-class> cn.wwh.www.web.servlet.MyServlet</servlet-class>(權限類名)
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>(虛擬的URL)
</servlet-mapping>
(7) 通過瀏覽器訪問MyServlet這個動態Web資源
IE:http://localhost:8080/mail/MyServlet
註意: 1> 在WEB-INF目錄下放的是java的class文件。而不是java源碼 2>寫servlet的類時,一定要在web.xml文件下進行配置,就像用到android的四大組件時,必須在manifest.xml文件裏註冊一樣。 3>在瀏覽中的地址欄,輸入虛擬文件夾要註意大寫和小寫問題。 4>因為MyEclipse中自帶了jdk,所以在執行tomcat時要註意在dos下編譯的java源文件所用到的jdk要和tomcat中的jdk一樣。 4.servlet創建的三種方式(僅僅寫類型。沒有註重代碼的目的)
1.第一種(CreateServlet1.java):
package cn.wwh.www.web.servlet;


import java.io.IOException;
import java.io.PrintWriter;


import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


/**
*類的作用:
*
*
[email protected] 一葉扁舟
[email protected] 1.0
[email protected]: 2014-7-26 上午10:57:35
*/
public class CreateServlet1 implements Servlet{

@Override
public void destroy() {

} @Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {

}
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
// 取得服務端向瀏覽器中的輸出流對象
PrintWriter pw = response.getWriter();
pw.write("You must study and never give up your dream!");

}
}

(2)另外一種方式(CreateServlet2.java): package cn.wwh.www.web.servlet;

import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


/**
*類的作用:
*
*
[email protected] 一葉扁舟
[email protected] 1.0
[email protected]: 2014-7-26 上午11:12:14
*/
public class CreateServlet2 extends GenericServlet {

@Override
public void service(ServletRequest requeset, ServletResponse response)
throws ServletException, IOException {
// 設置瀏覽器字符的編碼的方式,基本的針對中文字符,假設不設置中文字符,將出現亂碼
response.setContentType("text/html;charset=UTF-8");

response.getWriter().write("<h1 style=‘color:red‘>青春是用來奮鬥的,理想是用來實現的!</h1>");
}
}
(3)第三中方式(CreateServlet3.java):
package cn.wwh.www.web.servlet;


import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
*類的作用:
*
*
[email protected] 一葉扁舟
[email protected] 1.0
[email protected]: 2014-7-26 上午11:41:28
*/
public class CreateServlet3 extends HttpServlet {

//瀏覽器以Get的方式提交。所以覆寫doGet的方法就好了
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
// pw.write("<strong>");
pw.write("<span style=‘font-size:300%;color:red;‘>");
pw.write("作者:一葉扁舟");
pw.write("</span>");
pw.write("<br/>");
pw.write("<p style =‘color:blue;‘>專業:軟件project</p>");
// pw.write("</strong");

pw.close();
}
}


servlet學習(1)