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界面;

                                       

原文地址:https://www.cnblogs.com/bwcx1375/p/7076470.html