1.servlet的介绍
(1)servlet其实就是java程序(java类)
(2)该java程序(java类)要遵循servlet开发规范
(3)servlet是运行在服务器端的
(4)servlet功能强大,几乎可以完成网站的所有功能
(5)是学习jsp的基础
2.tomcat和servlet在网络中的位置
tomcat里面有很多的功能模块,其中有一块叫做web服务器,这个主要用来接收从浏览器发送过来的http请求然后将这个请求转发给tomcat里面的另外一个
模块就是JSP/servlet/html容器,找到相应的资源之后容器就会将相应的结果返回给web服务器,然后web服务器再将静态HTML页面返回给浏览器。
3.tomcat的三个功能
(1)web服务器
(2)jsp容器
(3)servlet容器
4.开发servlet有三种方法
(1)实现servlet接口(便于看Servlet生命周期)
这个接口当中有五个方法,分别是init、service、destroy、getServletConfig以及getServletInfo
(a)init:Servlet引擎会在Servlet实例化之后,置入服务之前精确地调用init方法。在调用Service方法之前,init方法必须成功退出。
(b)service:Servlet引擎调用这个方法以允许Servlet响应请求。这个方法在Servlet未成功初始化之前无法调用。
(c)destory:当一个Servlet被从服务中去除时,Servlet引擎调用这个方法。在这个对象的service方法所有线程未全部退出或者没被引擎认为发生
超时操作时,destory放啊不能被调用。
(d)getServletConfig:返回一个ServletConfig对象,作为一个Servlet开发者,应该通过init方法存储ServletConfig对象以便这个方法能返回这个对象。
(e)getServletInfo:允许Servlet向主机的Servlet运行者提供有关它本身的信息。返回的字符串应该是纯文本格式而不应该有任何标志。
(2)继承GenericServlet
(3)继承HttpServlet
5.Servlet快速入门案例
需求如下:请使用实现接口的方式,来开发一个Servlet,要求该Servlet可以显示Hello,world同时显示当前时间
步骤:
(1)建立一个web应用sgrweb
(2)在sgrweb下建立WEB-INF/web.xml[web.xml可以从ROOT/WEB-INF/WEB.xml下进行拷贝]
(3)在sgrweb下建立classes目录(我们的Servlet就要在该目录下开发),在建立一个lib文件夹
(4)开发MyFirstServlet
package com.sgrweb;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
class MyFirstServlet implements Servlet {
//该函数就是用于初始化servlet,就是把该servlet装载到内存中
//该函数只会被调用一次
public void init(ServletConfig config) throws ServletException {}
//得到ServletConfig对象
public ServletConfig getServletConfig() {
return null;
}
//该函数是服务函数,我们的业务逻辑代码就是写在这里的
//该函数每次都会被调用
public void service(ServletRequest req,ServletResponse res) throws ServletException,java.io.IOException {}
//该函数得到Servlet配置信息
public java.lang.String getServletInfo() {
return null;
}
//销毁该Servlet,从内存中清除掉,该函数被调用一次
public void destroy() {}
}
(5)根据Servlet规范,我们还需要部署Servlet。需要将Servlet部署到web.xml文件
<s
<servlet> <servlet-name>MyFirstServlet</servlet-name> <servlet-class>servletToJsp</servlet-class> </servlet> <servlet-mapping> <servlet-name>ChatServlet</servlet-name> <url-pattern>/jsp/chat/chat</url-pattern> </servlet-mapping>
ervlet-name>servletToJsp</servlet-name>
补充:如果使用javac去编译一个java文件,则需要带命令参数
javac -d . java文件