天天看點

JavaWeb開發中Setvlet的部署以及應用

    JavaScript 和 Java  Applet  是運作在用戶端浏覽器中。Servlet是運作在伺服器端的程式 ,他不像 JSP有有輔助工具輔助編碼,是以說 Servlet的開發效率是比較低的

 但是他對程式員的水準的要求要比JSP程式員的要求高很多 ,因為Servlet中涉及到很多底層的東西,一種典型的開發模式就是  MVC開發模式 利用Setvlet進行流程的控制 。

實際上我們的 JSP頁面其實是先編譯成Servlet 然後再轉換成對應的位元組碼檔案  是以說 我們每個JSP頁面和  Servlet都是一一對應的 。

Servelt由web伺服器編譯執行,當用戶端通路Servlet的時候,伺服器會自動配置設定一個線程來處理Servlet  此Servlet非 CGI的程序,相對CGI技術相對記憶體消耗較少  。

由于是再伺服器端運作的Servlet也受到防火牆的保護是以是以安全性是比較好的 。

Servlet的生命周期分為三個過程  :

1、實際Servlet是一個類,當第一次客戶請求的時候 ,那麼 伺服器首先生成一個Servlet的對象 ,然後 調用init()進行初始化  在整個伺服器的生命周期的init隻進行一次 。。

2、調用service() 方法來響應 用戶端的請求

3、當下次客戶進行請求的時候 直接從記憶體中取出servlet對象  直接使用  當伺服器關閉的時候 那麼将調用destroy方法來清除 此對象

是以說整個周期初始化工作隻進行一次。。。

其實 使用Servlet和 JavaBean的部署類似,我們都是使用Java編寫的一個類  

首先看下面的一個Servlet代碼

 import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class MyServlet extends HttpServlet

{

 public void init(ServletConfig config)throws ServletException

 {

  super.init() ; 

 }

 public void service(HttpServletRequest req, HttpServletResponse resp) throws  ServletException,IOException

 {  

  resp.setContentType("text/html;charset=GB2312");

  PrintWriter out=resp.getWriter();

  out.print("接收到了一次請求!<br>");

  out.print ("請求IP是"+req.getRemoteAddr()+"<br>");

}

編譯成class檔案

然後再Tomcat根目錄下建立

WEB-INF檔案夾

在其下建立 lib檔案夾和

classes檔案夾 并吧class檔案放在其中

然後再web.xml中寫下如下設定

<?xml version="1.0" encoding="UTF-8"?>

<servlet>

    <servlet-name>firstServlet</servlet-name>

    <servlet-class>MyServlet</servlet-class>

</servlet>

<servlet-mapping>

    <url-pattern>/firstServlet</url-pattern>

</servlet-mapping>

 <display-name>

 ch08</display-name>

 <welcome-file-list>

  <welcome-file>index.html</welcome-file>

  <welcome-file>index.htm</welcome-file>

  <welcome-file>index.jsp</welcome-file>

  <welcome-file>default.html</welcome-file>

  <welcome-file>default.htm</welcome-file>

  <welcome-file>default.jsp</welcome-file>

 </welcome-file-list>

</web-app>

以前我們在處理表單送出的時候一切操作 是再JSP頁面下進行的  但是現在 我們是在底層完成  也就是Servlet中實作