servlet的应用
## Servlet ##
#简单介绍;
>> 基本概念;
|-- 一个类,用于将java应用发布到web上;
|-- 两个包:
以后需要学习的web三大开发组件都在里面;
|-- javax.servlet
|-- javax.servlet.http
#简单的应用;
>> servlet的实现类
|-- 手动复写service函数;
>> 配置web.xml;
|-- 为servlet起名字;
|-- 指定servlet的路径(包名+类名)
|-- 指定servlet的映射路径;
|-- 映射名字;
|-- 匹配的路径;
>> 详细:
--------------------------------------------------------------------------------------------------
<servlet>
<servlet-name>任意起的一个名称,一般会使用servlet的类名</servlet-name>
<servlet-class>servlet的全名 就是包名.类名.</servlet-class>
</servlet>
<serlvet-mapping>
<servlet-name>要与上面的servlet-name的值一样</servlet-name>
<url-pattern>/名称</url-pattern>
</servlet-mapping>
--------------------------------------------------------------------------------------------------
>> 将其部署到服务器上;
|-- 浏览器地址栏中输入:主机名/应用名/包名/rul-pattenrn中的名称
#使用MyEclipse部署Servlet应用;
>> 注意事项:
|-- 不要直接使用F2修改应用名; --- 使web工程名和应用名保持一致;
|-- Servlet的两种实现方式;
|-- GenericSerlvet
|-- HttpServlet(MyEclipse会自动继承该类);
|-- Mapping URL
|-- 其中配置的路径决定浏览器地址栏中的路径;
|-- 注意启动时端口被占用情况;
|-- 当外部使用JDK1.7编译,而MyEclipse中使用tomcat6进行部署时,可能会出现问题;
>> 基本步骤;
|-- 新建web项目;
|-- 创建工作空间(包)
|-- 新建Servlet;
>> doGet函数和doPost函数与service方法的关系;
|-- service方法将调用doXX方法;
即使子类不写service方法,其父类当中也会有该方法;
该方法内部会自行判断提交方式是GET还是POST;
而当自己重写service方法后,可能会未重写其中调用方法;
导致调用失效;
#Servlet的生命周期
>>实例化
实例化只被执行一次
>>初始化
初始化只被执行一次
>>服务(service方法)
请求执行n次
>>销毁
服务器结束(tomcat),只被执行一次
>> 对生命周期的改写;
|-- 可以将实例化和初始化的动作放在tomcat的启动时进行;
|-- 注意考虑利弊;
|-- 方式;
|-- <load-on-startup>取值</load-on-startup>
|-- 取值范围从2 开始,1为tomcat使用,取值越小优先级越高;
#Servlet的具体配置细节;
>> 可以配置多个映射地址;
|-- <servlet-mapping></servlet-mapping>
|-- <servlet-name></servlet-name>
|-- <url-pattern></url-pattern>
|-- 可以并列使用配置多个映射地址;
>> url-pattern的写法
|-- 它的值要与浏览器输入的地址相匹配,
通过url-pattern可以查找到servlet-name,
再通过serlvet-name可以查找到对应servlet类.
> 可以使用通配符;
|-- /× (过滤后面指定的资源);
|-- ×.扩展名 (过滤指定后缀名的资源);
|-- /× 优先级较高;
>> 缺省Servlet【/】--- 当请求资源找不到,缺省会直接执行;
|-- 自定义404界面;