当前位置:首页 > 公司荣誉 >

servlet详解(第一篇)

作者:曲靖市宁江木业有限公司 来源:www.ynnjmy.com 发布时间:2017-09-11 13:27:07

servlet详解(第一篇) servlet基本概述 生命周期方法: void init(ServletConfig):出生之后(1次); void service(ServletRequest request, ServletResponse response):每次处理请求时都会被调用; void destroy():临死之前(1次); 特性: 单例,一个类只有一个对象;当然可能存在多个Servlet类! 线程不案例的,所以它的效率是高的! Servlet类由我们来写,但对象由服务器来创建,并且由服务器来调用相应的方法。 1 什么是Servlet Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要: ?接收请求数据; ?处理请求; ?完成响应。

例如:客户端发出登录请求,或者输出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要我们自己来编写,每个Servlet必须实现javax.servlet.Servlet接口。

2 实现Servlet的方式(由我们自己来写!) 实现Servlet有三种方式: 实现javax.servlet.Servlet接口; 继承javax.servlet.GenericServlet类; 继承javax.servlet.http.HttpServlet类;

  通常我们会去继承HttpServlet类来完成我们的Servlet,但学习Servlet还要从javax.servlet.Servlet接口开始学习

public interface Servlet [Servlet中的方法大多数不由我们来调用,而是由Tomcat来调用。并且Servlet的对象也不由我们来创建,由Tomcat来创建!]{ public void init(ServletConfig public ServletConfig getServletCconfig) throws ServletException;onfig(); public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException; public String getServletInfo(); public void destroy(); } 3 创建helloservlet应用 我们开始第一个Servlet应用吧!首先在webapps目录下创建helloservlet目录,它就是我们的应用目录了,然后在helloservlet目录中创建准备JavaWeb应用所需内容: ?创建/helloservlet/WEB-INF目录; ?创建/helloservlet/WEB-INF/classes目录; ?创建/helloservlet/WEB-INF/lib目录; 创建/helloservlet/WEB-INF/web.xml文件; 接下来我们开始准备完成Servlet,完成Servlet需要分为两步: ?编写Servlet类; ?在web.xml文件中配置Servlet; HelloServlet.java public class HelloServlet implements Servlet { public void init(ServletConfig config) throws ServletException {} public ServletConfig getServletConfig() {return null;} public void destroy() {} public String getServletInfo() {return null;} public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("hello servlet!"); } } web.xml hello cn.itcast.servlet.HelloServlet hello /helloworld web.xml中配置servlet详解 在web.xml中配置Servlet的目的其实只有一个,就是把访问路径与一个Servlet绑定到一起,上面配置是把访问路径:“/helloworld”与“cn.itcast.servlet.HelloServlet”绑定到一起。 ?:指定HelloServlet这个Servlet的名称为hello; ?:指定/helloworld访问路径所以访问的Servlet名为hello。 和通过这个元素关联在一起了! 接下来,我们编译HelloServlet,注意,编译HelloServlet时需要导入servlet-api.jar,因为Servlet.class等类都在servlet-api.jar中。 javac -classpath F:/tomcat6/lib/servlet-api.jar -d . HelloServlet.java 然后把HelloServlet.class放到/helloworld/WEB-INF/classes/目录下,然后启动Tomcat,在浏览器中访问::8080/helloservlet/helloworld即可在控制台上看到输出! ?/helloservlet/WEB-INF/classes/cn/itcast/servlet/HelloServlet.class; servlet接口详解 1Servlet的生命周期

所谓xxx的生命周期,就是说xxx的出生、服务,以及死亡。Servlet生命周期也是如此!与Servlet的生命周期相关的方法有:

?void init(ServletConfig); ?void service(ServletRequest,ServletResponse); ?void destroy(); 1.1 Servlet的出生

服务器会在Servlet第一次被访问时创建Servlet,或者是在服务器启动时创建Servlet。如果服务器启动时就创建Servlet,那么还需要在web.xml文件中配置。也就是说默认情况下,Servlet是在第一次被访问时由服务器创建的。
而且一个Servlet类型,服务器只创建一个实例对象,例如在我们首次访问:8080/helloservlet/helloworld时,服务器通过“/helloworld”找到了绑定的Servlet名称为cn.itcast.servlet.HelloServlet,然后服务器查看这个类型的Servlet是否已经创建过,如果没有创建过,那么服务器才会通过反射来创建HelloServlet的实例。当我们再次访问:8080/helloservlet/helloworld时,服务器就不会再次创建HelloServlet实例了,而是直接使用上次创建的实例。
在Servlet被创建后,服务器会马上调用Servlet的void init(ServletConfig)方法。请记住, Servlet出生后马上就会调用init()方法,而且一个Servlet的一生。这个方法只会被调用一次。这好比小孩子出生后马上就要去剪脐带一样,而且剪脐带一生只有一次。
我们可以把一些对Servlet的初始化工作放到init方法中!

1.2 Servlet服务

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:上海做网站 http://www.flpsz.com

  • 上一篇:Struts+Hibernate+Spring整合
  • 下一篇:最后一页