v Jsp-Tip-1-servlet
²编写servlet
创建一个扩展javax.http.HttpServlet的Java类,取保导入了servlet.jar(或
servlet-api.jar)中的类—编译servlet时需要这些类。
Web容器创建servlet实例时的基本过程:
I) 容器调用servlet的init()方法,初始化servlet即将使用的环境
II) Init()方法初始化一个javax.servlet.ServletConfig接口的对象,
ServletConfig提供在web.xml中申明的初始化参数。
ServletConfig提供了对javax.servlet.ServletContext对象的访问。
III) 调用service()方法响应servlet请求,对于HttpServlet,service()
会自动调用适当的HTTP方法(如doGet()或doPost())
IV) 当调用doGet()或doPost()方法时,容器会创建javax.servlet.http.HttpServletRequest和HttpServletResponse对象。
V) Tomcat支持servlet API 2.4。类路径中所需的JAR文件位于<Tomcat-5-installation-directory>/common/lib/servlet-api.jar
Tomcat 2.1.24 使用servlet2.3 API,servlet类位于
<Tomcat-4-installation-directory>/common/lib/servlet.jar
VI) 编译servlet,并把编译后的类放在build子目录下
Javac –classpath c:/tomcat/common/lib/servlet-api.jar
-d ./build ./src/FirstServlet.java
执行时,改变至src目录的父目录
VII) Web应用程序结构是标准的由servlet API规范指定
/myapp
/images
/WEB-INF
/classes
/lib
VIII) 打包war文件
Jar cvf myapp.war .
最后的(.)字符,表示jar工具要在war文件中包括当前目录的内容及子目录,该命令在当前目录中创建myqpp.war文件。
IX) 察看war文件
jar tvf myapp.war | more
X) 创建部署描述符
将XML文件命名的web.xml文件放置在web应用程序的WEB-INF目录下
XI) 手工配置servlet
©在webapps/ROOT/WEB-INF/classes下创建目录servlettest。
©将编译好的servlet类文件TestServlet拷贝到
webapps/ROOT/WEB-INF/classes/servlettest。
©启动tomcat,执行
http://localhost:8080/servlet/servlettest.TestServlet
©这种方式部署servlet需要重新启动Tomcat
XII) 不重启Tomcat而部署servlet
将sevlet部署为Tomcat的server.xml文件中的Context元素的一部分
©Server.xml位于<tomcat-installation-direction>/conf/
©Context元素必须嵌套在Host元素中,该Host元素表示虚拟机。
©web应用程序运行在虚拟机下
©新建Context,将该元素的reloadable属性设置为true,指示Tomcat监视
WEB-INF/class和WEB-INF/lib中内容的任何变化,如果检查到有变化,Tomcat会自动重新装载Web应用程序。
© <Context path="/dudu" docBase="dudu" debug="99" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="dudu_log." suffix=".txt" timestamp="true"/>
© path属性表示应用程序的上下文目录,如http://localhost:8080/newapp/
© docBase属性表示该web应用程序的
物理位置docBase属性还可以是相对于appBase(包含在server.xml的Host
元素中的路径名),如相对于<tomcat-home>/webapps
© 将reloadable设置为true会导致显著的运行时负担,所以建议只在部署模
式下才为web应用程序进行配置。
XIII) 将web应用程序部署在一个外部目录中
© 创建一个包含context元素的文件,以xml为扩展名。文件名不必与应用程
序名相同。
© 将该文件放在<tomcat-home>/webapps中
© 或该文件放在<tomcat-home>/conf/Catalina/localhost中
© 或该文件放在conf/server.xml的Host元素中appBase所配置的目录中
© 重启tomcat
XIV)