Spring的工作原理,控制反转是怎么实现的?自己写过滤器过滤编码怎么实现;Spring的工作原理,控制反转是怎么实现的?自己写过滤器过滤编码怎么实现Spring的工作原理,控制反转是怎么实现的?自己写过滤器过滤编码怎么实现Spring的工作原理,控制反转是怎么实现的?自己写过滤器过滤编码怎么实现
4条回答 默认 最新
- 404警告 2021-06-24 21:51关注
Spring是一种多层的J2EE应用程序框架,其核心就是提供一种新的机制管理业务对象及其依赖关系。它是一种容器框架,用于创建bean,维护bean之间的关系,它可以管理web层,持久层,业务层等
Spring的工作原理: 就是让一个对象的创建不用new就可以自动的生产,在运行时与xml Spring的配置文件来动态的创建对象和调用对象,而不需要通过代码来关联
控制反转: 每次使用spring框架都需要配置xml文件,这个xml配置了bean的id和class。
Spring中默认的bean为单实例模式,通过bean的class引用反射机制可以创建这个实例。
因此,spring框架通过反射代替我们创建好了实例并且替我们维护他们。
A需要引用B类,spring框架就会通过xml把B实例的引用传给了A的成员变量过滤器:
package com.filter; import javax.servlet.*; import java.io.IOException; /** * Servlet Filter implementation class UtfFilter */ public class ConfigFilter implements Filter { // 定义一个获取初始化值的标杆 private static String encoding = null; /** * Default constructor. */ public ConfigFilter() { // TODO Auto-generated constructor stub } /** * @see Filter#destroy() */ public void destroy() { } /** * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (encoding != null) { // 设置请求的编码格式 request.setCharacterEncoding(encoding); // 响应的编码格式 response.setCharacterEncoding(encoding); // 放行 chain.doFilter(request, response); } } /** * @see Filter#init(FilterConfig) */ public void init(FilterConfig fConfig) throws ServletException { // 获取初始化变量赋值 encoding = fConfig.getInitParameter("character"); } }
web.xml:
<filter> <filter-name>ConfigFilter</filter-name> <filter-class>com.filter.ConfigFilter</filter-class> <init-param> <param-name>character</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>ConfigFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
解决 无用评论 打赏 举报
悬赏问题
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改
- ¥20 wireshark抓不到vlan