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"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>firstServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>firstServlet</servlet-name>
<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>
然后启动 Tomcat在 浏览器输入 http://local:8080/firstServlet ....然后看结果 。。是不是跟我们平时在JSP页面提交的时候不一样呢
以前我们在处理表单提交的时候一切操作 是再JSP页面下进行的 但是现在 我们是在底层完成 也就是Servlet中实现