flybirding10011 2021-06-24 21:34 采纳率: 51.9%
浏览 66
已结题

Spring的工作原理,控制反转是怎么实现的?自己写过滤器过滤编码怎么实现?

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