Servlet

注意: servletConfig可以获取配置文件(xml文件)中配置的servlet对象的初始化参数。

url-pattern

缺省servlet

注意:tomcat目录下有一个默认web.xml文件,当部署项目时默认读取项目下的web.xml文件,如果读取不到则会到全局web.xml中寻找。全局中配置默认缺省servlet和jspServlet。

ServletContext

servletContext三个作用
  1. 获取初始化参数(不重要,忽略)
  2. 获取web中任何资源的路径
  3. 实例:如下所示,a.txt,b.txt, c.txt都是可以获取的。d.txt无法获取是因为其没有发布到tomcat下。

补充: classpath即src下的java文件编译后的classes文件夹目录下。

3.域对象

Response

设置响应信息

通过writer响应文本信息

注意:setContentType是设置response查询码表和设置头的两个结合。

响应图片

文件下载

代码实例:

前端:

后台:

文件下载中文文件名乱码

如上代码: 因为getMimeType和getRealPath不需要对文件名解码,因为不在网络上传输,所以不需要解码,所以直接使用文件名字符串即可。但是setHeader(“Content-Disposition”“attachmetn;filename=”+filenameEncoder)这段代码需要在网络上传输并通过浏览器默认解码,所以需要使用文件名进行解码。

Request

  1. 请求转发

当servlet1无法解决这个问题是,但是servlet2可以解决,那么就调用请求转发.让servlet2处理并返回.

2.request中文乱码

原因分析及解决:

解决代码:

Cookie和session

概念:会话技术就是一个解决记录客户端状态的技术

图:

Cookie技术

设置cookie携带的条件

代码示例:

Session

图示:

Jsessionid持久化---手动创建一个JSESSIONID持久化的cookie即可让jsessionid持久化磁盘,原理是jsessionid只是一个cookie,即让cookie持久化.

ThreadLocal

Threadlocal为每个线程创建了一个副本,这样可以存储全局变量.

使用threadlocal

事务

监听器Listenner

  1. servletContextListener使用

使用监听器:

这样就可以观察到当servletContext创建时会打印出”context创建了......”

  作用:

B.比如加载spring的配置文件:  就是通过配置监听器加载配置文件的.

C.执行定时任务

其余5个监听器与以上同理

2.6+2中的2监听器

绑定与解绑监听器

使用方法:

1.将放到session中的对象实现监听器,不需要配置到web中,因为此对应使用时自己进入到内存中.

2.创建servlet放入session中:

存入Session中的对象的盾化与活化

使用方法:

  1. 被盾化与活化的对象实现对应监听器

  2.对象活化

盾化和活化时机:默认是服务器正常关闭时,存储在session中的对象(实现了盾化活化接口)会自动盾化到文件中. 当服务器启动后,再次调用servlet从session取出对象时,会被活化.

也可以配置文件配置对象盾化和活化的时机.

邮件发送

邮件发送过程

Filter过滤器

过滤器实例

  

  1. web.xml中配置过滤器,/*代表过滤所有servlet

  2.Filter类

3.servlet类

Filter图解

: filter1和filter2哪个先执行和mapping的顺序有关系

Filter配置

1.urlmap

2.Dispatcher

Filter作用

自动登录分析

java基础2(二)的更多相关文章

  1. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

  2. java基础(二章)

    java基础(二章) 一,变量 1.变量是内存中的一个标识符号,用于存储数据 2.变量命名规则 l  必须以字母.下划线 _ .美元符号 $ 开头 l  变量中,可以包括数字 l  变量中,不能出现特 ...

  3. Java基础十二--多态是成员的特点

    Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println( ...

  4. java基础-多线程二

    java基础-多线程二 继承thread和实现Runnable的多线程每次都需要经历创建和销毁的过程,频繁的创建和销毁大大影响效率,线程池的诞生就可以很好的解决这一个问题,线程池可以充分的利用线程进行 ...

  5. JAVA基础(二)—— 常用的类与方法

    JAVA基础(二)-- 常用的类与方法 1 Math类 abs ceil floor 绝对值 大于等于该浮点数的最小整数 小于等于该浮点数的最大整数 max min round 两参数中较大的 两参数 ...

  6. Java实习生常规技术面试题每日十题Java基础(二)

    目录 1. JAVA 的反射机制的原理. 2.静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同? 3.如何将String类型转化成Number类型. 4.什 ...

  7. Java基础系列二:Java泛型

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定 ...

  8. Java 基础(二)| 使用 lambad 表达式的正确姿势

    前言 为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握 lambda 表达式,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 ...

  9. Java基础(十二)--clone()方法

    Clone在Java中就是用来复制对象,通过分配一个和源对象相同大小的内存空间,然后创建一个新的对象,那么他和=的区别在哪? 通过=实现对象拷贝: @Data @NoArgsConstructor @ ...

  10. Java基础教程——二维数组

    二维数组 Java里的二维数组其实是数组的数组,即每个数组元素都是一个数组. 每个数组的长度不要求一致,但最好一致. // 同样有两种风格的定义方法 int[][] _arr21_推荐 = { { 1 ...

随机推荐

  1. HTML与CSS的一些知识(一)

    一般写代码的时候,总会有些小错误.为了便于修改以及查找,所以代码格式要写规范,而且一定一定要写注释.因为有时候代码写得多了,真的连自己都找不到自己要找的东西在哪里.还有命名也要见名知意. 再说一些HT ...

  2. BZOJ-2298|区间dp|线段树

    problem a Description 一次考试共有n个人参加,第i个人说:"有ai个人分数比我高,bi个人分数比我低."问最少有几个人没有说真话(可能有相同的分数) Inpu ...

  3. 论文笔记:ATOM: Accurate Tracking by Overlap Maximization

    ATOM: Accurate Tracking by Overlap Maximization  2019-03-12 23:48:42  Paper:https://arxiv.org/pdf/18 ...

  4. EJB 笔记

    EJB(Enterprise JavaBean)是J2EE服务器端的组件模型,EJB包括会话Bean(Session Bean).实体Bean(Entity Bean).消息驱动Bean(Messag ...

  5. heartbeat 非联网安装(通过配置本地yum文件库安装heartbeat)

    软件环境:centos6.5 一.下载rpm包 首先找一台联网的centos6.5机器 安装epel扩展源: yum install -y epel-release 安装yum-plugin-down ...

  6. centos用YUM装mysql笔记

    安装的方法,参考:https://blog.csdn.net/jeffleo/article/details/53559712 注意事项: 1.上面教程中,关于设置密码的地方,SQL语句有误,单引号要 ...

  7. System.InvalidOperationException:“线程间操作无效: 从不是创建控件“btnSearch”的线程访问它。

    System.InvalidOperationException:“线程间操作无效: 从不是创建控件“btnSearch”的线程访问它.”这个问题属于跨线程问题 在Form1重载中写上一行代码 Sys ...

  8. .net core创建控制台应用程序和mvc程序

    一.创建控制台应用程序 1.查看支持哪些类型:dotnet new --help 2.创建项目(先定位到需要创建的目录) dotnet new console -o ./myconsole 3.查看目 ...

  9. C#的Monitor.Enter和Monitor.Exit

    C#的lock 语句实际上是调用Monitor.Enter和Monitor.Exit,中间夹杂try-finally语句的简略版,下面是实际发生在之前例 子中的Go方法: 1 2 3 4 5 6 7 ...

  10. 容器虚拟网卡与网桥docker0虚拟网卡的veth pair的配对

    一)基本知识: Docker 安装时会自动在 host 上创建三个网络:none,host,和bridge:详细说明可参考其它文档.我们可用 docker network ls 命令查看: 基于DRI ...