Servlet入门详解

来源:互联网 发布:软件开发的流程 编辑:程序博客网 时间:2024/05/16 05:49

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访问优先级

完全路径匹配 > 目录匹配 > 扩展名匹配

  1. 完全路径匹配,以/开头的
    例:/demo5 /servlet/demo5
    访问:http://localhost/servlet/demo5可以访问

  2. 目录匹配,以/开头的
    例:/*
    访问:http://localhost/day09/demo5可以访问

  3. 扩展名匹配,不能以/开头的
    例: .do .action
    访问:http://localhost/day09/demo5.do可以访问

ServletConfig对象

该对象一般用来获取初始化参数,比如字符集编码,数据连接URL,username,password等信息。

配置初始化参数

需要在标签下配置。配置在某个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();    System.out.println(c.getInitParameter("username"));}
  • String getServletName() 获取配置文件中servlet的名称
  • String getInitParameter(String name) 获取初始化参数
  • Enumeration getInitParameterNames() 获取初始化参数的名称们

ServletContext对象(域对象)

该对象整个web应用成员只有一个,在任何servlet中获取的均是一样的,因此开发过程中一般使用它实现数据共享,读取资源文件,读取全局初始化参数。

获取方式

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

1、实现数据的共享

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

2、读取资源文件(*

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

3、读取全局初始化参数

配置全局初始化参数

在web.xml中配置

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

读取全局初始化参数

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    ServletConfig c=getServletConfig();    ServletContext sc=getServletContext();    System.out.println(sc.getInitParameter("encoding"));}
0 0