Servlet的重点知识总结

     servlet:

      1. servlet是什么?

             就是运行在服务器端的java小程序。 

              

1) 客户端发送请求至服务器端;

2) 服务器将请求信息发送至 Servlet

3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

4) 服务器将响应返回给客户端。

      2. servlet的声明周期:

            init()实例化: 服务器启动会调用init()的方法进行初始化,当浏览器的请求到达服务器端的时候会实例化servlet的实例!或者在配置文件中的servlet的标签中配置标签,目的是为了让服务器已启动就实例化servlet.

            service():

  

服务器创建一个请求对象,处理客户端请求

服务器创建一个响应对象,响应客户端请求

服务器激活 Servlet 的 service() 方法,传递请求和响应对象作为参数

service() 方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息

service() 方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如 doGet() 或 doPost() 程序员自己开发的新的方法。

       3.servlet的配置文件:

               

       4.srelvet的API及其实现类的关系:

               sevlet:接口。具有servlet所有的方法:init。service destroy,getServletConfig,getServletInfo

       

    GenericServlet:是servlet的实现类,重写了接口里的方法

              

    HttpServlet:是sevlet的实现类,同时也是GerenricServlet的子类。因为父类应经重写过接口中的方法了(例如init(Config config),service()).所以,作为子类的httpservlet就不用重写了,直接对servlce的doGet()和doPost()的方法进行重写就行。直接对浏览器发送的请求方式作出判断。一般表单的请求都是:post的请求,而那些超链接都是get的请求!



   

      5.url-pattern配置

         

url-pattern配置

我们在创建servlet后,如果想要这个servlet可以被我们访问到,必须在web.xml文件中对其进行配置。

在其中有一个这个标签是用于确定我们访问一个servlet的路径,接下来,我们详细介绍一下关于这个标签的配置

它是用于确定我们访问一个servlet的路径.

问题:一个servlet是否可以被不同的路径映射?(多个不同配置是否可以映射同一个servlet)

可以

      6.

      1)servletConfig的作用:

             

                   获取Servlet名称    getServletName()

                  获取 Servlet初始化参数    getInitParameter()   getInitParameterNames()

                  获取ServletContext对象:域对象

        2) servletConfig如何获取:

                   因为父类的genericservlet已经有获取servletConfig的方法,子类直接用即可。this.getservletconfig()    

        3)如何编写初始化参数的配置文件:

                    

                     在web.xml文件中我们可以对servlet进行配置,在配置标签内可以有以下这样的子标签

                       

                             

                               

                         

         4)servlet的Api详解:

                         

Ø String getServletName() 

获取在web应用程序中部署的servlet实例的名称

Ø String getInitParameter(String name) 

获取包含指定初始化参数的值的String,如果不存在,返回null

Ø Enumeration getInitParameterNames()

以 String 对象的 Enumeration 的形式返回 servlet 的初始化参数的名称

Ø ServletContext getServletContext()

返回对调用者在其中执行操作的 ServletContext 的引用。

     7.servletContext:

            

          WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。

     1> servletContext的作用:

              a>获取全局的初始化参数

              b>实现资源的共享

              c>获取web资源

     2>如何获取servletContext?

           a>this.getServletConfig.getContext()

           b>this.getContext()

     3>如何实现资源的共享的呢?

       


ServletContext context = this.getServletContext();   

//存入共享的数据    

context.setAttribute("name", "haha"); 

在其它的Servlet中利用ServletContext对象获取共享的数据   

/*获取ServletContext对象*/  

ServletContext context = this.getServletContext();   

//获取共享的数据   

String name = context.getAttribute("name");   

System.out.println("共享的内容值是:"+name);  

      8>利用sesrvletContext读取配置文件

              

注意:利用sesrvletContext读取配置文件:
        主要就是配置文件的路径的问题:(web项目运行在服务器端,所以项目的所有文件都存放在服务器里面)
             1>放在src目录下:
                 src目录下就是java程序--被翻译成class文件---存在在服务器端的/web-inf/classes/db.properties
                   a> 为什么不加项目名称呢?
                           因为浏览器访问的是具体的web工程下面的某个servlet。这个servlet去读取这个配置文件。在服务器内部找。
   
        b> this .getServletContext().getRealPath:这种方式
     String path = this .getServletContext().getRealPath( "/WEB- INF/classes/db.properties" );
     
     pro.load( new FileInputStream(path));
               // 通过key获取value
              String username = pro.getProperty( "username" );
              String password = pro.getProperty( "password" );
   
             2>放在项目的具体的包下面:
                           
   /WEB-INF/classes/cn/itcast/servlet/db.properties
            3>放在WEBRoot下面:
              /db.properties

























你可能感兴趣的:(javaWeb)