博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring整合Web开发
阅读量:6791 次
发布时间:2019-06-26

本文共 3336 字,大约阅读时间需要 11 分钟。

 

时间:2017-2-2 02:17

 

——导入jar包

1、导入Spring开发基本jar包
    spring-beans-3.2.0.RELEASE.jar

    spring-context-3.2.0.RELEASE.jar
    spring-core-3.2.0.RELEASE.jar
    spring-expression-3.2.0.RELEASE.jar
 

2、导入commons-logging.jar

3、导入Spring Web开发jar包
    spring-web-3.2.0.RELEASE.jar

——简单测试
1、编写一个Service
2、编写一个Servlet
3、编写配置文件
4、编写log4j.properties
5、访问Servlet调用Service方法
但是在测试的过程中发现:
    每次执行Servlet的时候都会加载Spring环境,如何解决?
        *   将加载的信息内容保存到ServletContext中,ServletContext对象是全局对象,服务器启动时就会创建,在创建ServletContext时就会加载Spring环境。
        *   可以创建一个监听器:ServletContextListener,用于监听ServletContext对象的创建和销毁。
这件事情spring-web-3.2.0.RELEASE.jar帮助我们完成了。
——配置监听器
将Spring容器的初始化操作,交由Web容器负责。
1、配置核心监听器:ContextLoaderListener
    Spring提供的ContextLoaderListener实现了ServletContextListener接口。
2、配置全局参数:contextConfigLocation
    用于指定Spring框架的配置文件的位置。
    默认在XmlWebApplicationContext类中指定为WEB-INF目录下:
        public static final String DEFAULT_CONFIG_LOCATION = "/WEB-INF/applicationContext.xml";
    如果需要修改默认目录,可以通过初始化参数进行修改:
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
——获得WebApplicationContext对象
因为Spring容器已经交由Web容器初始化和管理,所以获得WebApplicationContext对象需要依赖ServletContext对象:
通常直接在Servlet中获取:
    WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
    底层也是通过:getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);来获得。
另一种获取方式:
    WebApplicationContext context = (WebApplicationContext) getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
通常使用第一种方式来获得ApplicationContext对象。
——示例代码
Servlet:
public class UserServlet extends HttpServlet {
 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
        WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
        UserService userService = (UserService) context.getBean("userService");
        userService.sayHello();
    }
}
----------------------------------------------------------------------------------------------------------------------------
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns=" " xmlns:xsi=" " xsi:schemaLocation="   /web-app_3_0.xsd">
    <servlet>
        <servlet-name>UserServlet</servlet-name>
        <servlet-class>com.wyc.servlet.UserServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>UserServlet</servlet-name>
        <url-pattern>/UserServlet</url-pattern>
    </servlet-mapping>
 
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
 
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
 
</web-app>
----------------------------------------------------------------------------------------------------------------------------
spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" " xmlns:xsi=" " xmlns:context=" " xsi:schemaLocation="
  /spring-beans.xsd
  /spring-context.xsd">
 
    <bean id="userService" class="com.wyc.service.UserService" />
 
</beans>
----------------------------------------------------------------------------------------------------------------------------
UserService:
public class UserService {
    public void sayHello(){
        System.out.println("Hello Spring Web");
    }
}

转载于:https://www.cnblogs.com/wwwwyc/p/6375489.html

你可能感兴趣的文章
Oracle基本语句实例代码介绍
查看>>
excel表数据导入到mysql数据库中(自己做的练习保留)
查看>>
bash 函数使用,实现模块化编程
查看>>
LVS实现负载均衡
查看>>
LAMP架构下安装Discuz!论坛
查看>>
shell
查看>>
正则表达式
查看>>
我的友情链接
查看>>
spring MVC的第一次记录
查看>>
js获取 X-X-X N 天后 是 X年X月X日
查看>>
我的友情链接
查看>>
神奇的504 Bad Gateway Timeout
查看>>
mysql安装报错解决一例
查看>>
在服务器上排除问题的头五分钟
查看>>
安装 - FreeBSD + Nginx 环境搭建教程(推荐)
查看>>
学习cocos2d --- 场景创建
查看>>
小凡带你搭建本地的光盘yum源
查看>>
java 求最大公约数和最小公倍数
查看>>
vmware workstation的bridged NAT host-only区别与适用场景简介
查看>>
Linux基础知识
查看>>