java基础(二)

见文件中

 

Beanxml配置

1.bean的初始化方式

三种方式: 默认构造器,静态工厂初始化(了解)和实例工厂初始化(了解)

 

 

2.springbean的作用域

 Bean默认作用域是单实例的

 

 

可以设置非单实例

 

作用域介绍:

 

比如:将作用域设置request时,原理是在request对象创建好后调用,request.setAttribute(bean4,ctx.getBean(bean4))

 

Bean的生命周期

 

 

注意: springbean容器关闭后才会调用销毁方法。

 

2.Bean的属性注入

两种方式: 构造器注入和属性注入

 

1) 构造器注入

配置文件

 

Java

 

1. bean的初始化使用有参数构造器时,需要同时给属性赋值,这时就叫做bean的属性注入,bean的初始化方式还是构造方法。

2setter注入

 

配置实例

 

复杂属性注入

1. list注入

 

2.map属性注入

 

Property注入

 

3)团队开发

 

Bean的注解配置

@Autowiredqualifier(“”)注解可以使用Resource替代.

 

Spring整合junit

 

 

Classpath: 指定项目的根路径

@RunWith: 使用springJunit类加载器

@ContextConfiguration: 指定配置文件

 

注意: @Autowired根据类型自动注入,如果类型是接口,那么会默认找到实现类.如果有多个实现类则会抱错

 

AOP

 

Xml文件操作

Schema约束

w3chttp//www.w3.org/2001/XMLSchema-instance,这个是w3预定义的命名空间。客户可以根据这个名称空间创建自己的约束文档。就w3定义了一个标准接口一样,实现这个接口可以具备自定义约束文档的能力,比如:<complexType>这个标签就是w3预定义的标签,用于客户实现自己的约束文档。用户做完自己的约束文档后就可以在实例文档中使用这个约束文档,创建对应的配置文件。

即定义自己的约束文档然后使用的过程是:

自定义约束文档: 引入w3预定义命名空间,使用其内的标签定义自己的约束标签。

实例文档: 引入预定义命名空间,引入自定义明明空间和位置。使用自定义标签进行配置,从而完成配置文件作用。

 

使用实例:

如下:

 1xmls引入自定义命名空间 2xmlnsxsi:引入预定义命名空间 3xsischemalocation:引入自定义空间位置

 

 

Xml解析

 

 

Servlet

 

 

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

 

url-pattern

 

 

 

缺省servlet

 

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

ServletContext

 

 

servletContext三个作用

1. 获取初始化参数(不重要,忽略)

2. 获取web中任何资源的路径

 

实例:如下所示,a.txtb.txt, c.txt都是可以获取的。d.txt无法获取是因为其没有发布到tomcat下。

 

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

 

3. 域对象

 

 

Response

 

设置响应信息

通过writer响应文本信息

 

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

响应图片

 

文件下载

 

代码实例:

前端:

 

后台:

 

 

文件下载中文文件名乱码

 

 

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

Request

1. 请求转发

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

 

2. request中文乱码

原因分析及解决:

 

解决代码:

 

Cookiesession

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

 

:

 

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中的对象(实现了盾化活化接口)会自动盾化到文件中. 当服务器启动后,再次调用servletsession取出对象时,会被活化.

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

邮件发送

邮件发送过程

 

Filter过滤器

 

过滤器实例

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

2. Filter

 

3. servlet

 

Filter图解

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

 

Filter配置

1.urlmap

 

3. Dispatcher

 

Filter作用

 

自动登录分析

 

基础加强

1. 类加载器

 

A.类加载器获取classpath下任意内容

 

注意: 可以通过ClassLoader可以获取classpath下的所有内容.

 

SpringMVC

1.整体架构

1. 流程图

 

2. 流程细节图

2.Web.xml配置文件

 

3. 返回值方式

 

2.异常处理

异常图解:

 

异常使用:

实现以下类,并将此类实例化交由spring处理.即在web.xml中进行配置.

 

完整版

 

4. 上传图片

5. restful风格

 

6.

原文地址:https://www.cnblogs.com/zhulibin2012/p/10467845.html