Servlet&JSP复习笔记 03
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的更多相关文章
- Servlet&JSP复习笔记 02
1.Servlet获取请求参数 获取请求参数依靠的是表单元素的name属性,广泛意义来说id属性是给客户端使用的,name属性是服务器使用的. a.获取Name-Value的方法: - getPara ...
- Servlet&JSP复习笔记 01
1. Servlet 含义:服务器端的小程序,它只是服务器中的一部分. Servlet Little 标准:Sun公司制定的一种用来扩展Web服务器功能的组件规范. a. 扩展web服务器功能:扩展w ...
- Servlet&JSP复习笔记 04
1.状态管理 因为HTTP协议是无状态协议,但很多时候需要将客户端和服务端的多次请求当做一个来对待.将多次交互中设计的数据进行保存. 状态:数据 管理:对数据的维护 2.Cookie 客户端向服务器发 ...
- javaweb servlet jsp简单笔记
第二章: 1: web 俗称 : 万维网 www 2: web开发 的三大核心: HTML(网页) ,URL(定位),HTTP:(协议) 页面的分类: 静态页面: html+css 动态页面:jsp ...
- Spring MVC 复习笔记03
1. @RequestMapping 1). url映射 定义controller方法对应的url,进行处理器映射使用. 2). 窄化请求映射 3). 限制http请求方法 出于安全性考虑,对htt ...
- JSP复习笔记
1.注释 <!--这个注释会显示在HTML源码中--> <%--隐藏注释,不会显示在HTML源码中--%> 2.声明 <%! java声明 声明变量,方法等 %> ...
- mybatis 复习笔记03
参考:http://www.mybatis.org/mybatis-3/zh/configuration.html 入门 1. 从 XML 中构建 SqlSessionFactory 每个基于 MyB ...
- 算是学完了《Servlet&JSP学习笔记》,立此存照
我感觉从构架上来说,算是入门了, 终于可以正式进入SPRING的学习啦...爽 代码就不弄了,真的太多了...花了差不多两周呢..
- JAVA复习笔记03(完)
31.类中可定义接口 一个定义接口的java文件中最多有1个Public的接口 32.TreeMap 按照键值升序排序 LinkedHashMap 按照插入顺序排序 Map的操作: Map<in ...
随机推荐
- Char、float、Double、BigDecimal
Char初识 char: char类型是一个单一的 16 位 Unicode 字符 char 在java中是2个字节("字节"是byte,"位"是bit ,1 ...
- PHP笔记01
php 环境 xamp wamp phpstudy等集成软件网上很多 PHP基础语法 PHP语法是以<?php开始 ?>结束的//php 文件的默认扩展名是.php 例如(用PHP输出he ...
- CSU-ACM2020寒假集训比赛2
A - Messenger Simulator CodeForces - 1288E 两种解法,我选择了第二种 mn很好求,联系过就是1,没联系过就是初始位置 第一种:统计同一个人两次联系之间的出现的 ...
- UVA - 10689 Yet another Number Sequence (矩阵快速幂求斐波那契)
题意:已知f(0) = a,f(1) = b,f(n) = f(n − 1) + f(n − 2), n > 1,求f(n)的后m位数. 分析:n最大为109,矩阵快速幂求解,复杂度log2(1 ...
- UVA - 11925 Generating Permutations(生成排列)(构造)
题意:将序列1,2,3,……,n,用不超过2n^2次操作,通过下列操作变成给定序列.(1<=n<=300) 1.交换前两个元素 2.将第一个元素移到最后 分析:因为将序列变成升序更容易操作 ...
- 解决RecyclerView瀑布流效果结合Glide使用时图片变形的问题
问题描述:使用Glide加载RecyclerView的Item中的图片,RecyclerView使用了瀑布流展示图片,但是滚动时图片会不断的加载,并且大小位置都会改变,造成显示错乱. 解决方法:使用瀑 ...
- Mac系统Snail SVN 精简版配置比较、合并工具:Beyond Compare及破解
Mac系统 Beyond Compare及破解 前言 在上一篇文章:Mac系统的SVN客户端:Snail SVN 精简版 介绍了在mac系统中svn客户端使用的是snail svn,但是当我想要把本地 ...
- Mybatis(1)-初识mybaits
一.概述 1.概述 mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身, 而不需要花费精力去处理加载驱动.创建连接.创建 state ...
- swift 录音 AVAudioRecorder
2018年05月16日 15:22:44 msmwncx阅读数:548 https://blog.csdn.net/msmwncx/article/details/80336973 版权声明:本文为博 ...
- uboot 学习笔记
ram 初始化: 在 start.S 中, bl cpu_init_crit 这句,在 tq2440 中是直接调用,在韦东山里面是通过和 TEXT_BASE 进行比较,如果从 RAM 中运行就不进行 ...