1.Servlet的声明周期
  容器如何创建Servlet对象,如何为Servlet对象分配资源,如何调用Servlet对象的方法来处理请求,以及如何销毁Servlet对象的过程.

  a.实例化
    容器调用Servlet的构造器,创建一个Servlet对象;
    a.接收到第一个关于Servlet的请求时,就会先创建一个当前这个Servlet;
    b.容器启动时,自动进行创建(在web.xml中添加设置).
      <load-on-startup>1</load-on-startup>
  b.初始化
    容器创建了Servlet对象后会立即调用init方法.
    一般来说,我们不需要写init方法,因为GenericServlet已经提供了init方法来实现(将容器传递过来的ServletConfig对象保存下来,并提供了getServletConfig方法获取该对象.)
    init方法一般只会调用一次.

    自定义初始化参数:
    <init-param>
    <param-name>name</param-name>
    <param-value>BoWen</param-value>
    </init-param>
  c.就绪
    正常执行的service方法.
  d.销毁
    使用destroy方法进行销毁.
    停止服务器时自动调用.

   

2.Servlet有关的核心接口和类:

  

3.ServletContext对象:
  容器启动后,会为每一个WEB应用创建唯一的一个符合ServletContext接口要求的对象,该对象就是Servlet上下文.

  特点:
    a.唯一性(一个web应用对应一个上下文对象)
    b.一直存在(只要容器不关闭,应用没有被卸载就一直存在)
    c.全局性

  可以用于存储一个全局的值.

  ServletContent是线程不安全的.

4.JSP基本概念:
  先有Servlet,由于里面包含了大量的输出语句,降低了页面展示功能的控制,jsp技术是对Servlet中输出语句的替换.
  一个jsp文件里面包含了大量的html代码和少量的java代码,最后还是会被容器变成servlet来执行.
  jsp:java server page(运行在服务器的动态页面)

5.JSP的开发
  a.新建一个以".jsp"为后缀的文件.
  b.添加内容:
    1)HTML(CSS,JS) 与编写HTML页面一致;
      作用:控制展示效果
    2)少量的java代码
      作用:控制页面
    * java代码段: <% %>
    * java表达式 <%= %> (替换为out.println)
    * java指令 <%@ %> 控制jsp文件转换成java是的一些设定
    * 隐含对象
      在jsp中可以直接使用的一些对象.例如:out,request,response等.
      在容器的转译环节中,容器会自动创建或者获取这些对象.

    

6.JSP的运行过程
  a.当请求发送至容器时,容器会先将jsp页面转换成(转译)一个java文件,当前这个类的类名和jsp页面是一样的,且会自动间接的继承HttpServlet;
  b.会自动加入Servlet常规的设定;
  c.然后将jsp页面中所有的html代码使用Out进行输出;
  d.将<% %>中的代码片段进行加载;
  e.再将下面的html代码进行Out输出,直至结尾,然后运行java文件;
  f.编译成class文件进行返回.
  第一次会比较慢,后续运行会越来越快.

7.转发:
  a.一个WEB组件将未完成的工作,通过容器转交给其他web组件的过程.
  b.转发的实现:
    1)绑定数据,request.setAttribute(String name,Object val)
    2)获取转发器: RequestDispatcher rd = request.getRequestDispatcher(url);
    3)转发: rd.forward(request,response);
  c.转发的特点:
    1)浏览器地址栏不改变;
    2)共享request和response对象;
    3)只能转发应用内部的.

8.异常处理
  a.编程式 : 使用try catch 进行捕获
  b.配置式 : 在web.xml中配置errorpage.

附录:
  依赖:通过传参的方式来影响另外一个类就是依赖.

Servlet&JSP复习笔记 03的更多相关文章

  1. Servlet&JSP复习笔记 02

    1.Servlet获取请求参数 获取请求参数依靠的是表单元素的name属性,广泛意义来说id属性是给客户端使用的,name属性是服务器使用的. a.获取Name-Value的方法: - getPara ...

  2. Servlet&JSP复习笔记 01

    1. Servlet 含义:服务器端的小程序,它只是服务器中的一部分. Servlet Little 标准:Sun公司制定的一种用来扩展Web服务器功能的组件规范. a. 扩展web服务器功能:扩展w ...

  3. Servlet&JSP复习笔记 04

    1.状态管理 因为HTTP协议是无状态协议,但很多时候需要将客户端和服务端的多次请求当做一个来对待.将多次交互中设计的数据进行保存. 状态:数据 管理:对数据的维护 2.Cookie 客户端向服务器发 ...

  4. javaweb servlet jsp简单笔记

    第二章: 1: web 俗称 : 万维网  www 2: web开发 的三大核心: HTML(网页) ,URL(定位),HTTP:(协议) 页面的分类: 静态页面: html+css 动态页面:jsp ...

  5. Spring MVC 复习笔记03

    1. @RequestMapping 1). url映射 定义controller方法对应的url,进行处理器映射使用. 2). 窄化请求映射  3). 限制http请求方法 出于安全性考虑,对htt ...

  6. JSP复习笔记

    1.注释 <!--这个注释会显示在HTML源码中--> <%--隐藏注释,不会显示在HTML源码中--%> 2.声明 <%! java声明 声明变量,方法等 %> ...

  7. mybatis 复习笔记03

    参考:http://www.mybatis.org/mybatis-3/zh/configuration.html 入门 1. 从 XML 中构建 SqlSessionFactory 每个基于 MyB ...

  8. 算是学完了《Servlet&JSP学习笔记》,立此存照

    我感觉从构架上来说,算是入门了, 终于可以正式进入SPRING的学习啦...爽 代码就不弄了,真的太多了...花了差不多两周呢..

  9. JAVA复习笔记03(完)

    31.类中可定义接口 一个定义接口的java文件中最多有1个Public的接口 32.TreeMap 按照键值升序排序 LinkedHashMap 按照插入顺序排序 Map的操作: Map<in ...

随机推荐

  1. 经典SQL50句

    50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...

  2. C# winform中ListView用法

    this.listView1.GridLines = true; //显示表格线 this.listView1.View = View.Details;//显示表格细节 this.listView1. ...

  3. 实验吧-密码学-变异凯撒(ascii码规律运算)

    密文是:afZ_r9VYfScOeO_UL^RWUc 刚开始很迷,不知道往什么方向,到最后才发现,原来和ASCII有关. 将flag{的ASCII码和密文的ASCII码对比: 97 102 90 95 ...

  4. Node.js NPM 包(Package)

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json 包是打 ...

  5. Spring框架模块

    Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Control – I ...

  6. my97datepicker实现日期改变立刻触发函数

    <input type="text" class="Wdate" onclick="WdatePicker({onpicking:functio ...

  7. java web实现在线编辑word,并将word导出(二)

    前一篇文章介绍了后台将前台html转为word文档的一种方式,但却有一个问题是没法讲图片放置在生成的word报告中.我在网上找了很多方法,甚至将图片转换成base64编码的方式也不成功.效果如下: 由 ...

  8. linux搭建mariadb,windows2008搭建iis+php+wordpress

    centos ip:192.168.101 windows ip :192.168.102 centos配置: [root@ml ~]# yum -y install mariadb-server # ...

  9. Java length、length()、size()区别

    1.length: 是一个 属性 针对的是 数组 得到的结果是 数组的长度 eg: String [] array = {"abc","def","g ...

  10. 一本通1402 Vigenère密码

    [题目描述]6世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码.Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南 ...