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中實作