12.1.4 一个简单的Servlet(3)
来源:互联网 发布:我的凉山兄弟 知乎 编辑:程序博客网 时间:2024/06/05 19:45
12.1.4 一个简单的Servlet(3)
从表12-1中可以看到,WEB-INF目录下的classes和lib目录都可以存放Java的类文件。在Servlet容器运行时,Web应用程序的类加载器将首先加载classes目录下的,其次才是lib目录下的类。如果这两个目录下存在同名的类,起作用的将是classes目录下的类。
在表12-1中,我们还可以看到一个特殊的目录WEB-INF,注意在书写时不要写错,所有字母都要大写。说这个目录特殊,是因为这个目录并不属于Web应用程序可以访问的上下文路径的一部分,对客户端来说,这个目录是不可见的。如果你将index.html文件放到WEB-INF目录下,对于客户端是无法通过下面的方式访问到这个文件的:
http://localhost:8080/ch12/WEB-INF/index.html
不过,WEB-INF目录下的内容对于Servlet代码是可见的,在Servlet代码中可以通过调用ServletContext对象中的 getResource()或者 getResourceAsStream()方法来访问 WEB-INF 目录下的资源,也可以使用RequestDispatcher调用(参见第12.6节)将WEB-INF目录下的内容呈现给客户端。
如果想要在Servlet代码中访问保存在文件中的配置信息,而又不希望这些配置信息被客户端访问到,就可以把这个文件放到WEB-INF目录下。
在%CATALINA_HOME%\webapps\ch12目录下新建一个目录WEB-INF,进入WEB-INF目录,新建一个classes目录,整个目录结构是:
%CATALINA_HOME%\webapps\ch12\WEB-INF\classes
将编译生成的HelloWorldServlet.class文件连同所在的包一起放到WEB-INF\classes目录下。
接下来,我们需要部署这个Servlet,Web应用程序的配置和部署是通过web.xml文件来完成的。web.xml文件被称为Web应用程序的部署描述符,它可以包含如下的配置和部署信息:
ServletContext的初始化参数
Session的配置
Servlet/JSP的定义和映射
应用程序生命周期监听器类
过滤器定义和过滤器映射
MIME类型映射
欢迎文件列表
错误页面
语言环境和编码映射
声明式安全配置
JSP配置
我们所编写的web.xml文件必须是格式良好的XML.编写web.xml文件,内容如例12-2所示。
例12-2 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>
org.sunxin.ch12.servlet.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
</web-app>
第一行是XML声明,接下来在根元素<web-app>上声明了使用的XML Schema的版本。这段代码除了版本号外,其他都是固定的,你无须记忆它,只要知道复制/粘贴就可以了。如果使用Tomcat 7之前的版本,由于之前的版本并不支持Servlet 3.0规范,所以要使用Servlet 3.0的新特性,需要将version属性设置为3.0,同时将web-app_2_5.xsd修改为web-app_3_0.xsd.
如果你使用Tomcat 7之前的版本,由于之前的版本并不支持Servlet 3.0规范,所以要相应地修改version属性和引用的模式文档的文件名。如Tomcat 6需要将version属性设置为2.5,web-app_3_0.xsd修改为web-app_2_5.xsd.
- 12.1.4 一个简单的Servlet(3)
- 12.1.4 一个简单的Servlet(4)
- 12.1.4 一个简单的Servlet(5)
- 一个简单的Servlet
- 一个简单的Servlet .
- Servlet(4)—一个简单的Servlet实例
- 一个简单的Servlet框架(帮助理解Servlet原理)
- 12.1.4 一个简单的Servlet(2)
- 一个简单的Servlet示例
- 一个最简单的servlet
- 一个简单的Servlet程序
- 一个简单的servlet程序
- Servlet的一个简单调用
- 一个简单的servlet 程序
- 一个简单的servlet容器
- 一个简单的servlet服务器
- Servlet学习日记(一)——什么是Servlet及手动编写一个简单的servlet
- 【zz】部署一个简单的servlet工程(测试)
- java死锁
- 删除一个字符串中连续的空格
- 在SWT中,如何点击一个按钮跳转到另外一个窗口?监听事件如何编写?
- java简单的卖票程序
- 组队赛130926 Regionals 2011, Latin America
- 12.1.4 一个简单的Servlet(3)
- 判断ORACLE启动时使用spfile还是pfile
- SSH2框架中自定义Util类空指针错误
- OC——类的基础知识
- 用VC查看exe文件中的二进制资源
- 百度2013校园招聘笔试题(含整理的答案)
- 不支持多拨的无线路由 一号多拨+无线
- poj 2443 Set Operation (位操作)
- 12.1.4 一个简单的Servlet(2)