zoukankan      html  css  js  c++  java
  • Spring整合Web

          Spring&Web整合,主要介绍的是Jsp/Servlet容器和Spring整合的过程,当然,这个过程是Spring MVC或Strugs2整合Spring的基础。

    一.创建maven项目,搭基础架构分层

    entity book实体  bookid  bookname bookprice

    dao IBookDAO 添加图书的方法addBook()

    IBookDAO.XML   Sql语句 添加图书名称与价格

    service 有着和 dao层一样的添加图书的方法 addBook()

    serviceimpl 重写addBook()方法 注入一个dao  return dao.addBook()

    编写servlet

    二、引入Spring开发基础jar包写在pom文件中

    <!--spring基础jar-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>4.2.0.RELEASE</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.2.0.RELEASE</version>
    </dependency>
    <!--spring JDBC-->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.2.0.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
    <dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
    </dependency>
      <!--spring JDBC-->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.2.0.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <!--mysql依赖包-->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
    </dependency>
    <!--mybatis依赖包-->
    <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.1</version>
    </dependency>
    <!-- Spring整合JavaWeb的包 -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.2.0.RELEASE</version>
    </dependency>

    <!--JavaEE的依赖-->
    <dependency>
    <groupId>javaee</groupId>
    <artifactId>javaee-api</artifactId>
    <version>5</version>
    </dependency>
    三.resources下的配置文件

    3.1jdbc.properties 配置文件中写入你连接数据库中的 url、driver、username、password

    因为我的Mysql没有密码,所以可以不写password

    3.2MyBatis-configuration.xml配置文件

    只需要配置一个别名就可以

    3.3接下来就是最重要的applicationContestSSM.xml文件的配置

    绑定bookservice时 property中的ref属性IBookDAO为红色,工具识别不到,是保存在内存中的对象,只有运行是才可以获得,所以颜色显示异常,不影响编译运行

    四、webapp下创建一个添加图书的页面

    五、Servlet编写

    public class BookServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //解决乱码
            request.setCharacterEncoding("utf-8");
            //接受数据
            String bookname = request.getParameter("bookname");
            int bookpritce = Integer.parseInt(request.getParameter("bookpritce"));
            Book book = new Book();
            book.setBookname(bookname);
            book.setBookpritce(bookpritce);
            //调度service实现添加
           ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContestSSM.xml");
            
            IBookService bookService = (IBookService)ac.getBean("bookService");
            int i = bookService.addBook(book);
            if(i>0){
                request.getRequestDispatcher("/index.jsp").forward(request,response);
            }else{
                request.getRequestDispatcher("/addBook.jsp").forward(request,response);
            }
    
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request,response);
        }
    }

    六、测试,访问addBook.jsp添加图书。去数据库中查看结果

     

    但是在测试的过程中发现:

    每次执行Servlet的时候都会加载Spring环境,如何解决?
            *   将加载的信息内容保存到ServletContext中,ServletContext对象是全局对象,服务器启动时就会创建,在创建ServletContext时就会加载Spring环境。
            *   可以创建一个监听器:ServletContextListener,用于监听ServletContext对象的创建和销毁。

    配置监听器

    将Spring容器的初始化操作,交由Web容器负责。

    web.xml中

      <!--设置监听器,就是系统的一个监听器,监听ServletContext创建,Spring容器加载上-->
      <!--所有的Servlet共享的一个设置-->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContestSSM.xml</param-value>
      </context-param>
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>

     在BookServlet中使用WebApplicationContextUtils的getRequiredWebApplicationContext方法来获取Servlet上下文

     

    这样的话就不会每次运行再从新再去new对象,使用监听器就可以直接从底层获取到

    再次运行查看结果

  • 相关阅读:
    Python 基础 (三)
    Python 基础(二)
    软件工程第四周作业
    软件工程第四周作业
    软件工程第四次作业
    软件工程第四周作业
    软件工程第三次作业
    软件工程第三周作业
    软件工程第三次作业
    Python学习之路5
  • 原文地址:https://www.cnblogs.com/wqtzhaoqiang/p/7724545.html
Copyright © 2011-2022 走看看