javaWEB的三大组件:
1.Servlet
2.Filter(过滤器)
3.Listenner(监听器);
1.什么是Servlet?
Servlet 是javaWeb的三大组件之一,它是我们学习javaWeb最基本的组件,也就是你一定要100%掌握;
Servelet主要是用来处理客户端发送的请求,并把响应结果返回给客户端的一个程序。
javaWeb应用程序中,所有的请求响应都是由Servlet完成的,Servlet是javaWeb的核心程序,所有的网址都是交给Servlet来处理。
Servlet中并没有main 之类的执行方法,用户访问服务器的时候,是由服务器(tomcat)通过调用servlet的某些方法来完成整个处理过程的。
2.编写Servlet的方式?
编写Servlet,可以通过直接实现Servlet接口来创建Servlet,但这种方法必须实现须实现5个方法: init(servletconfig config)、 service(servletrequest req,servletresponse resp) 、destroy() 、getservletconfig() 、getservletinfo();也可以通过继承其实现该接口的抽象类GenericServlet或HttpServlet来创建Servlet.。
直接实现Servlet接口来编写Servlet很不方便,需要实现的方法太多,因为HttpServlet已经实现了Servlet接口中的所有方法,所以编写Servlet时可直接继承HttpServlet,并覆盖需要的方法即可,一般只需要覆盖doGet()、doPost()方法即可;
2.1GenericServlet抽象类
GenericServlet抽象类实现了Servlet接口,并实现了大多数的方法,唯独接口中的service方法在抽象类GenericServlet中没有实现。GenericServlet还实现了log()方法,log方法在ServletContext接口中进行了声明,而log()方法是用来:将指定的消息写入servlet日志文件,以servlet的名称为前缀。
GenericServlet的已知直接子类是:HttpServlet,它也是一个抽象类,它实现了GenericServlet抽象类中没有实现的Service()方法,编写Servlet一般可直接继承HttpServlet并覆盖需要的方法即可。
3 创建Servlet 的方法
通过实现Servlet 接口来创建Servlet;通过这种方式创建Servlet的实例,则必须要求实现Servlet接口下的所有方法,下面的Servlet接口下的方法进行解释;
1.public void init(ServletConfig config) throws ServletException;
当Servlet实例被创建的时候,就会被调用,而且只会被调用一次,它主要用来做初始化的工作;
参数ServletConfig :它是Servlet容器使用的配置对象,该对象在初始化期间将信息传递给 servlet。(初始化的时候可以进行配置)
2.public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException;
service方法用来处理当前的业务逻辑,并把响应结果返回给浏览器;由 servlet 容器(web服务器)调用,以允许 servlet 响应某个请求。此方法仅在 servlet 的 init() 方法成功完成之后调用。(Servlet实例被创建之后才会被调用) 参数ServletRequest :用来接收客户端发送的请求; 参数ServletResponse :对发送的请求进行响应,并把响应结果返还给客户端;
( Tomcat是Servlet的运行环境,即一个Servlet容器。Servlet容器的作用是负责处理客户请求,当客户请求来到时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户。所谓的Servlet容器值得就是Web服务器比如:tomcat)
public void destroy();由 servlet 容器调用,指示将从服务中取出该 servlet。也就是说,当servlet 实例被销毁的时候被调用一次比如:关闭服务器;
public String getServletInfo():返回有关 servlet 的信息,比如作者、版本和版权。此方法返回的字符串应该是纯文本;
public ServletConfig getServletConfig():返回 ServletConfig 对象,该对象包含此 servlet 的初始化和启动参数。返回的 ServletConfig 对象是传递给 init 方法的对象。(用来获得Servlet 配置信息)
3.1配置Servlet
配置Servlet:光有Servlet类文件还不行,Web容器必须知道浏览器该怎么访问这个Servlet,也就是说需要配置Servlet的类文件和与访问方式,这个配置文件在Web应用程序的描述文件web.xm里完成,
首先需要配置Servlet的名称以及类名
<servlet>
<servlet -name>FirstName(任意字符串值)</servlet-name>
<servlet -class>runoob.com.HellowServlet</servlet-class>
Servlet类名就是实现了Servlet接口的类,但此处需要填写类的全名,就是加上包名(runoob.com.HellowServlet)
</servlet>
<servlet>标签中还可以有一些可选的配置,例如:
<servlet>
<servlet -name>FirstName(任意字符串值)</servlet-name>
<servlet -class>runoob.com.HellowServlet</servlet-class>
<init-param>
<param-name>enconfig</parame-name>
<parame-value>utf-c</parame-name>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
使用<init-param>标签可以配置一个初始化的参数,可以包含一个参数名(使用<parame-name>配置)与一个参数值<使用<parame-valeu>配置>,在Servlet方法中可以使用相关方法来获取配置的初始化参数值。
标签<load-on-startup>配置该Servlet的加载方式,可选值为0或1,如果配置为1,Tomcat会在启动的时候就加载该Servlet,否则tomcat 会在有人第一请求该servlet的时候才加载该Servlet。
配置<servlet-mapping> 映射路径
配置好Servlet名称与类名之后,还需要配置Servlet的访问方式,访问方式是使用<servlet-mapping>配置。
<servlet-mapping>
<servlet-name>FirstName<servlet-name>与<servlet>里配置的servlet名称相同;
<url-pattern>/Servletpadding</url-pattern>
</servlet-mapping>
一个完整的Servlet 包括Servlet类、《servlet配置》、《Servlet-mapping配置》,缺一不可,利用MyEclipse向导新建Servlet,MyEclipse会自动完成《Servlet》、《servlet-mapping》等配置。
通过浏览器访问Servlet的方式:http://localhost:8080/项目名/servlet映射路径.
有一点需要注意:当我们启动服务器的时候,如果我们在配置Servlet的时候,在Servlet标签中设置了<load-on-startup>1</load-on-startup>,那么服务器在启动的时候就会加载这个Servlet,如果没有配置,则<load-on-startup>默认值为0,也就是说虽然启动了服务器,但它不会立刻访问这个servlet,只有在浏览器发送请求的时候,这个Servlet的实例才会被创建加载。
以上内容只是简单的介绍了通过实现Servlet接口来创建Servlet的实例,实际上编写Servlet时通常是通过直接继承HttpServlet来实现的,HttpServlet是GenericServlet抽象类下的一个子类,它实现了Servlet和GenericServlet下的全部方法,后续文章将进行讲解
本文深入解析Servlet作为JavaWeb三大组件之一的核心作用,涵盖其定义、处理客户端请求的流程,以及通过实现Servlet接口或继承HttpServlet类的创建方式。同时,详细介绍了Servlet配置与映射,帮助读者全面理解Servlet在Web开发中的应用。
1341

被折叠的 条评论
为什么被折叠?



