关于Servlet学习(上)

    Java  Servlet,故名思议,它是一个基于Java技术的web组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容,Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写Java类。Servlet会被编译为平台独立的字节码,可以被动态的加载到支持Java技术的Wen服务器中运行

     1.Servlet容器的分类

      Servlet容器也即Servlet引擎,是Web服务器或应用程序服务器的一部分,用于在发送请求和响应之上提供网络服务,解码基于MIME的请求。Servlet容器在Servlet的生命周期内包容和管理Servlet。

     Servlet容器分为独立Servlet容器、进程内的Servlet容器和进程外的Servlet容器,我所有的WEB学习都是基于Tomcat容器的。


   2. Tomcat容器工作流程

     ①.客户端(通常是浏览器)访问WEB服务器,发送HTTP请求。

     ②.Web服务器接收到请求后,传递给Servlet容器。

     ③.Servlet容器加载Servlet,产生Servlet实例后,向其传递表示请求和响应的对象。

     ④.Servlet实例使用请求对象得到客户端的请求信息,然后进行响应的处理

     ⑤.Servlet实例将处理结果通过响应对象发送回客户端,容器负责确保响应的正确送出,同时将控制返回个Web服务器。


     3. Tomcat的安装目录下的各文件夹含义

     bin:存放启动和关闭Tomcat的脚本文件。

     lib:存放Tomcat服务器运行所需要的各种JAR包

     webapps:经常使用的也就是这个目录,当发布WEB应用程序时,就是讲web应用程序的目录及文件放在这个目录下。

    conf:存放Tomcat的各种配置文件如:server.xml等。

    logs:存放Tomcat的日志文件。

    temp:存放Tomcat运行时产生的临时文件。

    4.与Servlet相关的接口和类

        (1)Servlet接口:该接口在javax.servlet包中,在这个接口中定义了五个方法:

                                       1.init():在Servlet实例化后,Servlet会调用该方法来初始化该对象,主要是为了让Servlet对象在处理客户请求前先完成一些初始化工作。

                                       2.service():容器调用该方法来处理客户端的请求,在容器调用该方法前必须确保init()方法正确完成。

                                       3.destroy():当容器检测到一个Servlet对象应该从服务器中删除的时候,容器会调用该对象的destroy()方法。

                                       4.getServletConfig():该方法返回容器调用init()方法时传递给Servlet对象的ServletConfig对象

                                       5.getServletInfo():返回一个String类型的字符串,其中包含了关于Servlet的信息,如:作者、版本和版权等。

          

         (2).ServletRequest和ServletResponse接口:这两个接口也在javax.servlet包下,这两个接口包含了很多重要的方法,可以详细参考API来验证。

         (3).GenericServlet类:该类是一个抽象类,如果我们直接通过实现Servlet接口来编写一个Servlet类就需要实现Servlet接口中的五个类,为了简化Servlet的编写,在javax.servlet包中,给我们提供了一个抽象类GenericServlet,它提供了除service()方法外的其它4个方法的简单实现。

         (4)HttpServlet类:该类是一个抽象类。在大多数网络应用中,都是客户端(浏览器)通过HTTP协议去访问服务器的资源,而我们所编写的Servlet也主要是应用与HTTP协议的请求和响应,为了快速开发应用于HTTP协议的Servlet类。Sun公司在javax.servlet.http包中给我们提供了一个HttpServlet的抽象类,该类是继承了GenericServlet类。HttpServlet虽然是一个抽象类,但是其中没有抽象方法。

        (5)HttpServletRequest和HttpServletRequest接口:这两个接口分别继承了ServletRequest和ServletResponse。

   

    5.在了解了上面一些基本知识后我们开始第一个简单的Servlet程序

         第一步:编写Servlet类HelloWorld.java

           

public class HelloWorld extends HttpServlet {
	//用户提交的get方法
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);   //为简单起见,这里直接在调用doPost方法
	}
	//用户提交的post方法
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//得到一个PrintWriter对象
		PrintWriter out = response.getWriter();
		out.println("Hello World!");
		out.close();
	}

}

       第二步:在web.xml中配置Servlet,使Servlet类和请求相映射:

     

<servlet>
      <!-- 同一个web程序中可以有多个servlet,每一个servlet的名字必须是唯一的,比如下面的helloworld只能用一次
           servlet-class映射的是一个完整的Servlet类的路径(如果有包名,必须带上包)
       -->
      <servlet-name>helloworld</servlet-name>
      <servlet-class>net.liwei.servlet.HelloWorld</servlet-class>
  </servlet>
  <!-- servlet-mapping用于Servlet类和URL之间的映射 -->
  <servlet-mapping>
      <!-- 这个映射的名字必须和上面的Servlet的名字相同 -->
      <servlet-name>helloworld</servlet-name>
      <url-pattern>/hello</url-pattern>
  </servlet-mapping>
 
      第四步:运行HelloWorld.java

            打开Tomcat服务器,Run as on Server,网页将会出现HelloWorld如下:

       

           注意:我使用的是Eclipse4.3版本,在使用时将Tomcat服务器配置到了Eclipse中,所以可以直接在Eclipse中运行web项目,如果没有配置Tomcat到Eclipse,则需要将项目导出war到Tomcat的安装目录下的webapps目录下,然后开启Tomcat,打开浏览器输入:http://localhost:8080/StartServlet/hello就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值