javaweb学习Day7

来源:尚硅谷2022版javaweb

今日内容:

1. Servlet的初始化方法

  1. Servlet生命周期:实例化、初始化、服务、销毁
  2. Servlet中的初始化方法有两个:init() , init(config)
    其中带参数的方法代码如下:
    public void init(ServletConfig config) throws ServletException {
    this.config = config ;
    init();
    }
    另外一个无参的init方法如下:
    public void init() throws ServletException{
    }
    如果我们想要在Servlet初始化时做一些准备工作,那么我们可以重写init方法
    我们可以通过如下步骤去获取初始化设置的数据
  • 获取config对象:ServletConfig config = getServletConfig();
  • 获取初始化参数值: config.getInitParameter(key);
  1. 在web.xml文件中配置Servlet

<servlet>
    <servlet-name>Demo01Servlet</servlet-name>
    <servlet-class>com.atguigu.servlet.Demo01Servlet</servlet-class>
    <init-param>
        <param-name>hello</param-name>
        <param-value>world</param-value>
    </init-param>
    <init-param>
        <param-name>uname</param-name>
        <param-value>jim</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>Demo01Servlet</servlet-name>
    <url-pattern>/demo01</url-pattern>
</servlet-mapping>
  1. 也可以通过注解的方式进行配置:
 @WebServlet(urlPatterns = {"/demo01"} ,
     initParams = {
         @WebInitParam(name="hello",value="world"),
         @WebInitParam(name="uname",value="jim")
     })

2. 学习Servlet中的ServletContext和

1) 获取ServletContext,有很多方法
   在初始化方法中: ServletContxt servletContext = getServletContext();
   在服务方法中也可以通过request对象获取,也可以通过session获取:
   request.getServletContext(); session.getServletContext()
2) 获取初始化值:
   servletContext.getInitParameter();

3. IOC

IOC - 控制反转 / DI - 依赖注入
控制反转:
1) 之前在Servlet中,我们创建service对象 , FruitService fruitService = new FruitServiceImpl();
   这句话如果出现在servlet中的某个方法内部,那么这个fruitService的作用域(生命周期)应该就是这个方法级别;
   如果这句话出现在servlet的类中,也就是说fruitService是一个成员变量,那么这个fruitService的作用域(生命周期)应该就是这个servlet实例级别
2) 之后我们在applicationContext.xml中定义了这个fruitService。然后通过解析XML,产生fruitService实例,存放在beanMap中,这个beanMap在一个BeanFactory中
   因此,我们转移(改变)了之前的service实例、dao实例等等他们的生命周期。控制权从程序员转移到BeanFactory。这个现象我们称之为控制反转

依赖注入:
1) 之前我们在控制层出现代码:FruitService fruitService = new FruitServiceImpl();
   那么,控制层和service层存在耦合。
2) 之后,我们将代码修改成FruitService fruitService = null ;
   然后,在配置文件中配置:
   <bean id="fruit" class="FruitController">
        <property name="fruitService" ref="fruitService"/>
   </bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值