Servlet入门详解

web.xml关于servlet的配置

 <servlet>
    <servlet-name>ServletDemo1</servlet-name>
    <servlet-class>cn.itcast.servlet.ServletDemo1</servlet-class>
 </servlet>
 <servlet-mapping>
   <servlet-name>ServletDemo1</servlet-name>
   <url-pattern>/demo1</url-pattern>
 </servlet-mapping>

Servlet的继承关系

Servlet接口
|
GenericServlet(重写5个方法)
|
HttpServlet(继承GenericServlet实现了Servlet接口)
|
MyServlet

Servlet自动加载

 <!-- 在 <servlet> 标签下 <load-on-startup>3</load-on-startup> 值是正整数如果值越小,优先级越高。-->
  <servlet>
    <servlet-name>ServletDemo5</servlet-name>
    <servlet-class>cn.itcast.servlet.ServletDemo5</servlet-class>
    <load-on-startup>3</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletDemo5</servlet-name>
    <url-pattern>/demo5</url-pattern>
  </servlet-mapping>

Servlet访问优先级

* 完全路径匹配
    * 以/开头的         /demo5      /servlet/demo5
    * 访问:http://localhost/day09/demo5
* 目录匹配
    * 以/开头的         /*
    * 访问:http://localhost/day09/demo5可以访问
* 扩展名匹配
    * 不能以/开头的       *.do    *.action    
    * 访问:http://localhost/day09/demo5.do

* 优先级:完全路径匹配    > 目录匹配 > 扩展名匹配

ServletConfig对象

配置初始化参数

需要在标签下配置。如果要是配置在某个servlet的标签下,那么只能在该servlet中获取初始化参数。

<init-param>
    <param-name>username</param-name>
    <param-value>root</param-value>
</init-param>

获取方式

public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    // 先获取ServletConfig对象
    ServletConfig config = getServletConfig();
}

* String getServletName() 获取配置文件中servlet的名称
* String getInitParameter(String name) 获取初始化参数
* Enumeration getInitParameterNames() 获取初始化参数的名称们

ServletContext对象(域对象)

配置全局初始化参数

在web.xml中配置

<context-param>
    <param-name>encoding</param-name>
    <param-value>GBK</param-value>
</context-param>

获取方式

public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    // 先获取ServletConfig对象
    ServletConfig config = getServletConfig();
    // 获取ServletContext对象
    ServletContext servletconfig=config.getServletContext();
}

实现数据的共享

void setAttribute(String name, Object object)   //存入数据
void removeAttribute(String name)               //删除数据
Object getAttribute(String name)                //获取数据

读取资源文件(*

InputStream getResourceAsStream(String path)    //通过文件的地址获取输入流
String getRealPath(String path)                 //通过文件的地址获取文件的绝对磁盘路径

你可能感兴趣的:(servlet)