博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二章 Servlet基础
阅读量:6652 次
发布时间:2019-06-25

本文共 2146 字,大约阅读时间需要 7 分钟。

这章我们主要的目标

理解Servlet

Servlet的编码和部署
Servlet生命周期
Servlet的配置
Servlet与容器交互 
 
什么是Servlet
-是运行在Web服务器或应用服务器上的Java程序
-在Web上创建动态内容的有效而强大的解决方案
-由容器来管理生命周期与Web服务器交互
-由Sun规范了其功能 
 
Servlet的规范组成  
Web应用程序  Servlet和HTTPServlet   过滤器  安全  国际化  
 
 
Servlet生命周期
Servlet遵循三阶段的生命周期:初始化  服务  销毁
初始化 销毁通常执行一次,服务可以执行多次。
所有的Servlet必须实现javax.servlet.Servlet接口。这个接口定义了
init();service(ServletRequest req, ServletResponse resp);destory();
 
 
Servlet的编码和部署
创建部署文件 (web.xml):
   一般在创建工程的时候,又有默认的web.xml;这时就不需要创建了
 
在容器中注册servlet

<servlet>

      <servlet-name>OutputStream</servlet-name>
      <servlet-class>com.cy.OutputStream</servlet-class>
</servlet>

映射servlet:

<servlet-mapping>

       <servlet-name>OutputStream</servlet-name>
       <url-pattern>/OutputStream</url-pattern>
</servlet-mapping>

 

servlet配置:

为Servlet提供初始化配置信息
配置信息由web.xml声明中的字符串组成
 
eg:

<servlet>

    ....
  <init-param>
     <param-name>name</param-name>
     <param-value>Kitty</param-value>
  </init-param>

<init-param>

     <param-name>name1</param-name>
     <param-value>Kitty1</param-value>
  </init-param>

</servlet>

Servlet在编译的代码之外有初始化参数,当参数改变时,不需要重新编译Servlet  ,每个servlet都有一个与之相联的对象ServletConfig; (在servletConfig对象中包含了servlet的初始化参数信息。)

得到指定的参数value:String value= getServletConfig().getInitParameter(“name"); 

得到所有的所有的参数value:需要应用一个ServletConfig中的一个方法:getInitParameterNmes():返回一个Enumeration(枚举)对象,里面包含了所有的初始化参数。

 

  1. Enumeration e = this.getServletConfig().getInitParameterNames();  
  2.         while(e.hasMoreElements()){  
  3.             String name = (String)e.nextElement();  
  4.             String value = this.getServletConfig().getInitParameter(name);  
  5.             System.out.println(name+"="+value);  
  6.         }  
  7.     }  
 
ServletContext 应用上下文:
 
属于整个Web应用程序
可以访问到Web应用程序资源的本地输入流
把资源的虚拟路径转换为物理路径
记录事件日志
绑定一个对象在整个Web应用程序中共享
 
初始化web应用程序参数:

 <web-app>

 …

 <context-param>

     <param-name>admin email</param-name>

     <param-value>admin@cy.com</param-value>

  </context-param>

     …

</web-app>

 

在Servlet中共享信息

为所有的Servlet设置一个实时变化的参数值
在Web应用程序中共享一个对象
eg:

servletContext.setAttribute("password", "tiger");

String password = (String) servletContext.getAttribute("password");

虚拟路径转换为物理路径:

getResourcePaths(java.lang.String path):返回一个集合,路径必须从Web应用程序的根“/”开始;

getResourceAsStream(java.lang.String path):返回一个InputStream对象。当一个资源需要逐字节读取的时候该方法比较适用。

getResource(java.lang.String path):返回一个Web资源列表。

 

 
 
 

转载地址:http://mcjto.baihongyu.com/

你可能感兴趣的文章
Error mounting /dev/sda4 , Metadata kept in Windows cache, refused to mount的解决方法
查看>>
leetcode 1. Two Sum
查看>>
win下发现两个有用的快捷键
查看>>
ionic上拉加载更多当数据加载完没有下一页的时候我们需要显示一下"没有更多了"的友好提示...
查看>>
Linux下的压缩zip,解压缩unzip命令详解及实例
查看>>
工作周记 - 第三周 (2016/06/06 - 2016/06/8) 端午快乐
查看>>
JDK自带工具keytool生成ssl证书 和 HTTPS双向认证
查看>>
app 开发
查看>>
解析jsp的 tomcat 、resin
查看>>
UIViewController生命周期的理解
查看>>
Beta冲刺NO.7
查看>>
RabbitMQ入门学习
查看>>
【JAVA】Java 命令行参数解析
查看>>
wait/sleep/yield的区别
查看>>
CentOS6.8忘记root密码的解决办法(开始初始化也可以用)
查看>>
MVC视频下载/文件上传
查看>>
详解vue生命周期及每个阶段适合进行的操作
查看>>
平安产险项目记录(一)
查看>>
汇编语言第二章知识梳理
查看>>
iOS边练边学--transform的简单介绍并且用transform实现键盘处理
查看>>