Sevlet开发

1.Servlet的注册与与运行

• servlet程序必须通过Servlet容器来启动运行,并且储存的目录有特殊的要求,通常需要需要储存在<WEB应用程序目录>\WEB-INF\classes\目录中

• servlet程序必须在web应用的web.xml文件中进行注册和映射其访问路径,才可以被servlet引擎加载及被外界的应用访问

一个<servlet>元素用于注册一个servlet,它有两个重要的子元素,<servletname><servletclass>,分别用于设置servlet的注册名称和servlet的完整类名

• <servlet-mapping>元素用于映射一个已经注册的servlet的对外访问路径,它包含<servletname><url-pattern>两个基本的元素,分别用来设置servlet得到名称(必须和<servlet>中的注册名程一致)Servlet的对外访问路径

 

2.Servlet容器:运行Servlet Jsp Filter 等的软件环境

1):可以用来创建Servlet,并调用Servlet相关的生命周期方法

2)JSP Filter Listener Tag(标签)..的生命周期也要在Servlet中完成

 

3.Servlet的生命周期的方法

1):构造器,只被调用一次,只有第一次请求Servlet时,创建Servlet的实例,调用构造

2):init方法:只被调用一次在创建好实例以后,立即被调用,用于初始化当前的Servlet

3):service:被多次调用,每次都会请求调用service方法,实际上就是用于响应请求的

4):destory:只被调用一次,在当前的Servlet所在的WEB应用被卸载时调用你该方法,释放该web应用所占有的资源

 

4.load-on-startup参数

1):创建在servlet节点中(web.xml)

<servlet>

                  <servlet-name>SecondServlet</servlet-name>

                  <servlet-class>com.it.web.SecondServlet</servlet-class>

                  <load-on-startup>1</load-on-startup>

                  </servlet>

          2):可以指定Servlet被创建的时机,如果为负数则在第一次请求时被创建,若为0或正数,则当前WEB应用被Servlet容器加载时创建实例,且数组越凶小越先被创建

 

 

5:关于servlet-mapping

1):同一个Servlet可以用多个<servlet-mapping>用来映射,

2):在servlet映射到URL时可以使用*通配符,但是只能是两种固定格式,

一种格式是"*.扩展名",

另一种方式是以(/)开头并以”/*“结尾

注意不能是"*/"出现错误

 

6.ServletConfig:封装了Servlet的配置信息,并且可以获取ServletContext对象

   1.配置Servlet的初始化参数

    <servlet>

                  <servlet-name>SecondServlet</servlet-name>

                  <servlet-class>com.it.web.SecondServlet</servlet-class>

                  <!--配置Servlet的初始化参数 ,必须在load-on-up 之前配置-->

                  <init-param>

                                  <param-name>user</param-name>

                                  <param-value>root</param-value>

                  </init-param>

                  <init-param>

                                  <param-name>password</param-name>

                                  <param-value>123456789</param-value>

                  

                  </init-param>

                  <load-on-startup>1</load-on-startup>

   </servlet>

   2)获取初始化参数:

                  方法一:getInitParamter(Stringname):获取指定参数名(name)的初始化参数

                  Stringuser = servletConfig.getInitParameter("user");

System.out.println("user"+ user);

                  方法二:getInitParamterNames():获取参数名组成的Enumeration对象

Enumeration<String>names = servletConfig.getInitParameterNames();

while(names.hasMoreElements()){

Stringname = names.nextElement();

Stringvlaue = servletConfig.getInitParameter(name);

System.out.println("name"  + name  + "vlaue" + vlaue);

}

          3)获取Servlet配置名称(了解)

                  Stringservletname = servletConfig.getServletName();

                  System.out.println(servletname);

          

 7.ServletContext接口(SerletContext上下文)

         1)可以由ServletConfig获取

                 ServletContexta =  ServletConfig.getServlettContext();

         2)该对象代表当前WEB应用,可以认为ServletContext是当前        WEB应用的大管家,可以从中获取到当前WEB应用的各个方面的信息。

                 设置初始化参数所有的Servlet可以获取,而Servlet的初始化参数只能用那个Servlet获取

           常见的方法

                 方法获取当前WEB        应用的初始化参数

                         设置初始化参数

                         <!--配置当前WEB应用的初始化参数-->

                         <context-param>

                                  <param-name>driver</param-name>

                                  <param-value>com.mysql.jdbc.Driver</param-value>

                         </context-param>

                 方法获取WEB应用的某一文件的在服务器上的绝对路径;而不是部署前的路径 

                         getRealPath(Stringpath)

                         

                         Stringpath = servletContext.getRealPath("/note.txt");//此处的/为根目录,括号内的文件只能是Web Content的子文件

System.out.println(path);

                 方法:获取当前WEB应用的名称

                         getContextPath();

                         

                         StringcontextName = servletContext.getContextPath();

System.out.println(contextName);

                 方法:获取当前WEB应用的某一个对应的输入流

                         getResourceAsStream(Stringpath);//path/为当前web应用的根目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值