一、JAVA WEB 应用的目录结构
|-- web-app-name(其实就是一个文件夹的名称)
|-- META-INF:放置该应用的描述性文件
|-- WEB-INF:
|-- lib: 放置该应用依赖的第三方JAR包
|-- classes: 放置JAVA源码编译好的 .class 文件
|-- web.xml: 该应用的配置
|-- 静态资源: *.html *.css *.js
二、Servlet:
指JAVA EE提供的一整套开发JAVA WEB应用的API(一般指这个)。
如:javax.servlet.Servelt、javax.servelt.Filter 等
Servlet生命周期( Life Cycle):
生命周期:指一个对象从创建到销毁所经历的过程。
生命周期方法:定义在 javax.servlet.Servlet 接口中,包括三个方法:
init(ServletConfig config):当前Servlet对象被WEB服务器创建之后,立即被调用的方法,主要用于初始化web.xml中对该Servlet的配置。
service(ServletRequest req, ServletResponse resp):处理客户端的请求,并输出响应。
destroy(): 当前Servlet对象被WEB服务器销毁之前,将被调用的方法,主要用于释放Servlet对象可能占用的资源。
图解:
Servlet 配置:
<servlet>
<servlet-name>firstHx</servlet-name>
<servlet-class>com.hx.servlet.FirstHxServlet</servlet-class>
<init-param>
<param-name>str</param-name>
<param-value>何处望神州,满眼风光北固楼</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>firstHx</servlet-name>
<url-pattern>/firstHx</url-pattern>
</servlet-mapping>
<servlet>: 表示开始一个Servlet的配置
<servlet-name>: 该Servlet的名称
<servlet-class>: 该Servlet类的全限定名
<init-param>: 该Servlet的初始化参数,可以配多个
<param-name>: 参数名
<param-value>: 参数值
<load-on-startup>:该Servlet的初始化优先级,需要配置大于0的数字,数字越小,优先级越高。配置小于或等于0的数字,则该配置失效(也就是说不会提前初始化)
<servlet-mapping>: 该Servlet的映射
<servlet-name>: 要映射的Servlet的名称,需与<servlet>中一致,如该例中,需要为 firstHx
<url-pattern>: 被映射的Servlet要处理的请求的路径模式
一个典型的HTTP请求URL:
http://www.huaxin.com:80/oa/index.html?userName=Shelly&usrPwd=123
在WEB服务器端,会对应着一个 HttpServletRequest 对象: request
协议部分: http <--> request.getShema()
域名:www.huaxin.com <--> request.getServerName()
端口号:80 <--> request.getServerPort()
上下文路径(一般来说,就是WEB工程名): /oa <--> request.getContextPath()
资源路径: /index.html <--> request.getServletPath()
查询字符串:userName=Shelly&usrPwd=123 <--> request.getQueryString()