servlet

原创 2015年07月11日 01:02:04

一、Servlet

1.servlet概述

    Servlet就是一个java程序,运行在服务器端.进行创建,运用和销毁

2.编写Servlet的步骤

a、建立一个web project

b、编写一个Servlet,需要实现javax.servlet.Servlet接口

c、映射Servlet

给Servlet程序一个可以访问的URL地址。通过修改web.xml来实现

d、部署应用到Tomcat服务器

3.执行过程

4.Servlet生命周期

  • 诞生:第一次被访问,由容器创建对象的实例;并接着调用ini(ServletConfig cfg)方法进行初始化
  • 活着:应用活着它就活着。Servlet的一个实例是单例的。
  • 死亡:应用被卸载时,由容器调用destroy()方法。

Servlet接口:与Servlet生命周期有关的方法

    void init(ServletConfig cfg):初始化
    void service(ServletRequest req,ServletResponse res);   
    void destroy()

改变Servlet的初始化时机:

默认:第一次访问。<load-on-startup>-1
改为:应用被服务器加载时就完成实例化和初始化.web.xml
`<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>com.itheima.servlet.HelloServlet</servlet-class>
    <load-on-startup>2</load-on-startup><!--1已经被使用了,需要使用2或者2以后的数字-->
</servlet>`    

5.Servlet的线程安全

  • 尽量不要使用实例变量。应该使用局部变量。
  • 如果必须用到实例变量,请做好同步处理。

6.默认Servlet(了解)

如果一个Servlet的映射地址是一个”/”,那么这个Servlet就是默认的Servlet。
默认的Servlet用于处理在web.xml找不到映射的所有请求。

不要自己映射默认的Servlet。在Tomcat\conf\web.xml有配置。

7、Servlet映射细节

  1. 一个Servlet的实例可以被映射到多个访问的地址上
  2. servlet的映射可以使用通配符:*

    • 方式一:以*开头,以某个扩展名结尾
    • 方式二:以/开头,以*结尾(优先级高)

二、Servlet规范的核心类图

三、ServletConfig

  • 作用:针对某个Servlet程序进行参数配置。每一个Servlet都有自己的ServletConfig实例。
  • 怎么得到:在初始化Servlet时,服务器会创建ServletConfig的实例,并传递给Servlet对象。

实例: 为某个Servlet配置参数:修改web.xml

//配置web.xml
<init-param>
    <description>配置初始化参数</description>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
</init-param>
//读取指定的参数
ServletConfig con = getServletConfig();
    String encoding = con.getInitParameter("encoding");
    if (encoding==null) {
        encoding="utf-8";
    }
    System.out.println("当前编码:"+encoding);
//读取所有参数
    Enumeration<String>  e = con.getInitParameterNames();
    while (e.hasMoreElements()) {
        String paraName = (String)e.nextElement();
        System.out.println("参数名:"+paraName+"  参数值:"+con.getInitParameter(paraName));
    }

四、ServletContext

1. 作用:代表一个javaweb应用

2. 生命周期

  • 诞生:应用一旦被加载,服务器就会创建ServletContext的实例。
  • 活着:应用不挂,它就存在。
  • 死亡:应用挂了,他就死亡了。

3.具体应用

a、 实现Servlet之间的数据共享

概念:域(范围)对象。向ServletContext中存放的属性,存活范围就是应用范围。ServletContext叫做应用范围的域对象。

方法:

        void setAttribute(String name,Object value):向域对象中存属性
        Object getAttribute(String name):从域对象中取属性
        void removeAttribute(String name):从域对象中删除属性

b、获取WEB应用的初始化参数

  • 配置全局参数:web.xml

      <context-param>
        <param-name>encoding</param-name>
        <param-value>gbk</param-value>
      </context-param>
    <context-param>
        <param-name>aaa</param-name>
        <param-value>bbb</param-value>
    </context-param>
    
  • 获取全局参数:用ServletContext

    //获取某个参数
    ServletContext context = getServletContext();
    String paraName = context.getInitParameter("aaa");
    System.out.println(paraName);
    //获取所有参数
    Enumeration<String> paraNames = context.getInitParameterNames();
    while (paraNames.hasMoreElements()) {
        String paraName1 = (String) paraNames.nextElement();
        System.out.println("参数名:"+paraName1+"参数值:"+context.getInitParameter(paraName1));
    }
    
  • 实现Servlet的转发。

    客户端————>Demo1————>Demo2
    我找你借钱,你没钱,你找他借钱给我

  • 读取各种配置文件的方式

servlet工作原理

  • 2017年12月08日 14:49
  • 9.16MB
  • 下载

servlet和jsp学习指南

  • 2017年12月11日 09:28
  • 91.26MB
  • 下载

Eclipse—如何为Eclipse开发工具中创建的JavaWeb工程创建Servlet

Eclipse—如何为Eclipse开发工具中创建的JavaWeb工程创建Servlet

Servlet JSP和Spring MVC初学指南

  • 2017年12月08日 10:18
  • 4.45MB
  • 下载

Ajax向Servlet传值小实例

Ajax向Servlet传值小实例通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。下面是使用Ajax向后台Ser...

servlet ppt

  • 2017年12月12日 14:51
  • 525KB
  • 下载

servlet课件

  • 2017年12月12日 14:53
  • 10.45MB
  • 下载

[读书笔记]Servlet学习笔记-设计模式

Template Method模式 在template method模式中,父类会在某方法中定义服务流程,该方法称为模板方法(template metchod),而流程中调用的一些方法仅为定义声明而...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:servlet
举报原因:
原因补充:

(最多只允许输入30个字)