标签: javawebhtml
[TOC]java
开发步骤:git
API文档github
生命周期相关方法(life-cycle methods)apache
Servlet的生命周期经过java.servlet.Servlet
接口中的init()
、service()
、和destroy()
方法表示。Servlet的生命周期有四个阶段:加载并实例化、初始化、请求处理、销毁。(见文末【参考连接】)api
1.在tomcat中新建一个web应用hello
,在web应用中新建一个WEB-INF/classes
目录tomcat
2.在classes
目录新建一个FirstServlet
安全
package org.iot; import java.io.*; import javax.servlet.*; public class FirstServlet extends GenericServlet{ public void service(ServletRequest req,ServletResponse res)throws ServletException,java.io.IOException{ OutputStream out = res.getOutputStream(); out.write("hello servlet!!!".getBytes()); } }
3.编译,javac -cp %CATALINA_HOME%/lib/servlet-api.jar -d . FirstServlet.java
,命令行手动编译参考这里服务器
4.在WEB-INF
目录中新建一个web.xml
文件,配置servlet的对外访问路径
5.启动tomcat访问
时序图
<servlet>
包含<servlet-name>
和<servlet-class>
;<servlet-mapping>
包含<servlet-name>
和<url-pattern>
web.xml
中一个<servlet>
可对应多个<servlet-mapping>
<servlet-mapping>
的<url-pattern>
可使用通配符,两种固定格式:*.扩展名
;以/
开头,以/*
结尾request
和response
对象(它们的生命周期很短),传给service
方法。init
方法的调用是在第一次请求时,而非服务器启动时,除非在<servlet>
标签配置<load-on-start-up>
,数字越小优先级越高/
,则为当前web应用的缺省servlet,不匹配的都交给缺省SingleThreadModel
标记接口(已弃用)<servlet>
标签配置<init-param>
,经过getServletConfig
方法得到配置。可配置输出字符集,读哪一个配置文件等等。ServletConfig.getServletContext
方法得到,在<context-param>
标签配置。概念
一个web应用全部servlet共享同一个ServletContext对象,可实现数据共享。ServletContext被称为context域对象。
域:做用范围;context域:整个应用程序范围。
ServletContext域:
转发:客户机一次请求;重定向:客户机两次请求
做用
配置文件:properties文件和xml文件;数据有关系使用xml文件,没有关系则使用properties文件。
1.经过ServletContext
的getResourceAsStream
方法,读取properties文件
模板代码(注意文件位置不一样写路径会不一样):
InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/org/iot/servlet/db.properties"); Properties properties = new Properties();//map properties.load(in);
2.经过servletContext
的getRealPath
方法获得资源的绝对路径,再经过传统方式(FileInputStream
)读取
3.经过类装载器去读,ClassLoader
的getResourceAsStream
(若是读取资源文件的程序不是servlet),文件不能太大。只装载一次,因此如要读到更新后的数据,经过类装载的方式获得资源文件的位置,再经过传统方式读取资源文件的数据(用getResource
获得path,再用FileInputStream
)