重载和重写
方法重载(overload):
- 必须是同一个类
- 方法名(也可以叫函数)一样
- 参数类型不一样或参数数量不一样
方法的重写(override)两同两小一大原则:
- 方法名相同,参数类型相同
- 子类返回类型小于等于父类方法返回类型,
- 子类抛出异常小于等于父类方法抛出异常,
- 子类访问权限大于等于父类方法访问权限。
spring的依赖注入
spring依赖注入有如下几种方式:
①setter方式注入(设值注入)
②构造器方式注入
Spring支持利用构造器注入参数实例化Bean方式。只要在Spring的配置文件中增加构造器参数constructor-arg
Spring就会自动的调用有参数的构造器创建bean对象实例, 整个过程无需程序编码只需要配置applicationContext.xml文件即可
③自动装配功能实现属性自动注入
Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系,autowire可以针对单个bean进行设置,
autowire的方便之处在于减少xml的注入配置。
在xml配置文件中,可以在
关于Spring MVC的核心控制器DispatcherServlet的作用
SpringMVC的原理:
SpringMVC是Spring中的模块,它实现了mvc设计模式的web框架,首先用户发出请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handler,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handler进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染并把数据装入到request域,返回给用户。
DispatcherServlet作为springMVC的前端控制器,负责接收用户的请求并根据用户的请求返回相应的视图给用户。
DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。
DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:
1、文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;
2、通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);
3、 通过HandlerAdapter支持多种类型的处理器(HandlerExecutionChain中的处理器);
4、通过ViewResolver解析逻辑视图名到具体视图实现;
5、本地化解析;
6、渲染具体的视图等;
7、如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。
JSP内置对象
一共有9个内置对象
pageContext | javax.servlet.jsp.PageContext | 表示页容器 EL表达式、 标签 、上传 |
---|---|---|
request | javax.servlet.http.HttpServletRequest | 服务器端取得客户端的信息:头信息 、Cookie 、请求参数 ,最大用处在MVC设计模式上 |
response | javax.servlet.http.HttpServletResponse | 服务器端回应客户端信息:Cookie、重定向 |
session | javax.servlet.http.HttpSession | 表示每一个用户,用于登录验证上 |
application | javax.servlet.ServletContext | 表示整个服务器 |
config | javax.serlvet.ServletConfig | 取得初始化参数,初始化参数在web.xml文件中配置 |
exception | java.lang.Throwable | 表示的是错误页的处理操作 |
page | java.lang.Object | 如同this一样,代表整个jsp页面自身 |
out | javax.servlet.jsp.JspWriter | 输出 ,但是尽量使用表达式输出 |