栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM整合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM整合

SpringMVC 回顾Servlet 1.建立项目,添加web app依赖
    
        javax.servlet.jsp
        jsp-api
        2.2
    
    
        javax.servlet
        jstl
        1.2
    
2.编写一个Servlet类,用来处理用户请求
    public class HelloServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //1.获取前端参数
            String method = req.getParameter("method");
            if(method.equals("add")) req.getSession().setAttribute("msg","执行了add方法");
            if(method.equals("delete")) req.getSession().setAttribute("msg","执行了delete方法");
            //2.调用业务层
    
            //3.视图转发或者重定向
            req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);//重定向
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    }
3.写完servlet后,在web.xml中注册servlet
    
    
    
        
            hello
            com.ckl.servlet.HelloServlet
        
        
            hello
            /hello
        
    
    
    
    
    
    
    
    
    
    
    
3.1同时编写test.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        hello
    
    
    #{msg}
    
    
4.编写表单页面from.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        biaodan
    
    
    
5.配置tomcat并运行测试

http://localhost:8080/0514_SpringMVC_Servlet/hello?method=delete

http://localhost:8080/0514_SpringMVC_Servlet/hello?method=add

SpringMVC步骤 1.新建一个maven项目,添加web支持 2.确定导入SpringMVC依赖 3.配置web.xml,注册DispatcherServlet
    
    
    
    
        
            springmvc
            org.springframework.web.servlet.DispatcherServlet
            
            
                contextConfigLocation
                classpath:springmvc-servlet.xml
            
            
            1
        
        
        
            springmvc
            /
        
    
    
4.编写springmvc配置文件

【springmvc-servlet.xml】:[servletname]-servlet.xml 按照官方来

    
    
    
    
        
    
        
    
        
    
            
    
            
        
    
5.编写具体的业务操作Controller

要么实现Controller接口,要么增加注解;需要返回一个ModelAndView,装数据,封视图

    public class HelloController implements Controller {
        public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
                throws Exception {
            //ModelAndView 模型和视图
            ModelAndView mv = new ModelAndView();
    
            //封装对象,放在mv中
            mv.setViewName("hello"); // /WEB-INF/jsp/hello,jsp
            return mv;
        }
    }
6.将自己的类交给SpringIOC容器,注册bean(springmvc-servlet.xml)
    
        
7.编写要跳转的jsp页面,显示ModelAndView存放的数据,以及我们的正常页面
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        Title
    
    
    ${msg}
    
    
8.配置Tomact运行测试

http://localhost:8080/hello

如果访问出现404,

1.查看控制台输出,看一下是不是缺少什么jar包

2.如果jar存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖

3.重启Tomcat

lib文件夹在WEB-INF文件夹里面

SpringMVC使用注解开发 1.新建一个maven项目

pom.xml中添加资源过滤依赖【可加可不加】

    
        
            
                
                    src/main/java
                    
                        ***.xml
                    
                    false
                
                
                    src/main/resources
                    
                        ***.xml
                    
                    false
                
            
        
2.在pom.xml中引入相关依赖

Spring框架核心库、SPringMVC、servlet,JSTL等

3.配置web.xml

注册DispatcherServlet

    
    
    
        
            SpringMVC
            org.springframework.web.servlet.DispatcherServlet
            
                contextConfigLocation
                classpath:springmvc-servlet.xml
            
            1
        
        
            SpringMVC
            /
        
    
4.添加SPring MVC配置文件

springmvc-servlet.xml:

让IOC的注解生效;静态资源过滤:HTML,JS,CSS,图片,视频…

MVC的注解驱动;配置视图解析器

    
    
    
    
        
    
        
    
    	
    
        
    
            
    
            
        
    

在视图解析器中我们把所有的视图都存放在/WEB-INF/目录下,这样可以保证视图安全,又因为这个目录下的文件,客户端不能直接访问。

5.创建Controller

编写一个java控制类,com.ckl.controller.HelloController

    @Controller//就不需要去xml中注册bean
    @RequestMapping("/hello")
    public class HelloController {
    
        @RequestMapping("/h1")//视图跳转
        public String hello(Model model){//localhost:8080/hello/h1
            //封装数据
            model.addAttribute("msg","Hello,Spring MVC Annotation");
    
            return "hello"; //会被视图解析器处理
        }
    
        @RequestMapping("/h1")
        public String hello2(Model model){
            //封装数据
            model.addAttribute("msg","Hello,Spring MVC Annotation 2");
    
            return "hello"; //会被视图解析器处理
        }
    }
  • Controller 是为了让Spring IOC容器初始化时自动扫描到
  • @RequestMapping是为了映射请求路径,这里因为类与方法上都有映射所有访问时应该是/HelloController/hello
  • 方法中声明Model类型的参数是为了把Action中的数据带到视图中
  • 方法返回的结果是视图的名称hello,加上配置文件中的前后缀编程WEB-INF/jsp/hello.jsp
6.创建视图层

hello.jsp

7.配置Tomcat运行测试

注意点:

使用Spring MVC 必须配置三大件:处理器映射器、处理器适配器、视图解析器

通常我们只需要手动配置视图解析器,而处理器映射器和处理器适配器只需要开启注解驱动即可

配置SpringMVC乱码过滤

在web.xml中

    
        encoding
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
    
    
        encoding
        
    }
5.编写controller类:UserController
    @Controller
    public class UserController {
    
        //@RequestMapping(value="/j1",produces = "application/json;charset=utf-8")
        @RequestMapping("j1")
        @ResponseBody //不会走视图解析器,会直接返回一个字符串
        public String json1() throws JsonProcessingException {
            //jackson objectMapper
            ObjectMapper mapper = new ObjectMapper();
            //创建一个对象
            User user = new User("1号",3,"男");
            String str = mapper.writeValueAsString(user);
            return str;
        }
    
        @RequestMapping("j2")
        @ResponseBody
        public String json2() throws JsonProcessingException {
    
            ObjectMapper mapper = new ObjectMapper();
            //创建一个集合
            List list = new ArrayList();
            User user1 = new User("1号",1,"男");
            User user2 = new User("2号",2,"男");
            User user3 = new User("3号",3,"女");
            User user4 = new User("4号",4,"男");
            list.add(user1);list.add(user2);list.add(user3);list.add(user4);
            String str = mapper.writeValueAsString(list);
            return str;
        }
    
        @RequestMapping("j3")
        @ResponseBody
        public String json3() throws JsonProcessingException {
    
            ObjectMapper mapper = new ObjectMapper();
            
            mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
    
            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            mapper.setDateFormat(sd);
            Date date = new Date();
    
    
            //SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //sd.format(date);
            //ObjectMapper,时间解析后的默认格式为:Timestamp  时间戳
            //String str = mapper.writeValueAsString(sd);
            String str = mapper.writeValueAsString(date);
            return str;
        }
    }

注意: 使用json注意处理乱码问题

可以用过Spring配置统一指定,就不需要每次都去处理

在springmvc-servlet.xml中添加一段消息StringHttpMessageConverter转换配置

    
    
        
            
                
            
            
                
                    
                        
                    
                
            
        
    
SSM整合 1.新建项目,导入依赖 pom.xml
    
    
        4.0.0
    
        org.example
        SSM
        pom
        1.0-SNAPSHOT
        
            0516_SSM_Build
        
    
        
            
                junit
                junit
                4.13.2
                test
            
            
                
                mysql
                mysql-connector-java
                8.0.25
            
            
                
                com.mchange
                c3p0
                0.9.5.4
            
    
            
            
                javax.servlet
                servlet-api
                2.5
            
            
                javax.servlet
                jstl
                1.2
            
    
            
                
                org.mybatis
                mybatis
                3.5.2
            
            
                
                org.mybatis
                mybatis-spring
                2.0.2
            
    
            
            
                
                org.springframework
                spring-webmvc
                5.3.8
            
            
                
                org.springframework
                spring-jdbc
                5.3.8
            
        
    
    
        
            
                
                    src/main/java
                    
                        ***.xml
                    
                    false
                
                
                    src/main/resources
                    
                        ***.xml
                    
                    false
                
            
        
    
2.连接数据库 3.创建所需包,配置文件

4.关联数据库 database.properties
    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF-8"
    jdbc.username=root
    jdbc.password=123456

mybatis-config.xml

    
    
    
    
    
        
            
        
    
        
    
5.创建实体类: Books:
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Books {
        private int bookID;
        private String bookName;
        private int bookCounts;
        private String detail;
    }
6.创建接口及xml

开始编写dao层,dao层只是完成增删查改,service层才会在增删查改的基础上加上逻辑判断等

创建实体类的接口去进行业务操作:

BookMapper接口:
    public interface BookMapper {
        public int addBook(Books books);//添加书籍
    
        public int deleteBookById(int id);//删除书籍
    
        public int updateBook(Books books);//修改一本书
    
        public Books queryBookById(int id);//查询一本书
    
        public List queryAllBook();//查询所有书籍
    }
BooksMapper.xml
    
    
    
        
            insert into ssm.books (bookName, bookCounts, detail)
            values (#{bookName}, #{bookCounts}, #{detail});
        
    
        
            delete from ssm.books where bookID = #{bookID};
        
    
        
            update ssm.books set bookName = #{bookName},bookCounts=#{bookCounts},detail=#{detail}
            where bookID=#{bookID};
        
    
        
            select * from ssm.books;
        
    

也可以使用注解的方式,不用xml,比如:

    public interface BookMapper {
    
        @Insert("insert into ssm.books (bookName, bookCounts, detail) values (#{bookName}, #{bookCounts}, #{detail}")
        public int addBook(Books books);//添加书籍
    
        public int deleteBookById(@Param("bookID")int id);//删除书籍
    
        public int updateBook(Books books);//修改一本书
    
        public Books queryBookById(@Param("bookID")int id);//查询一本书
    
        public List queryAllBook();//查询所有书籍
    }
7.將BooksMapper.xml绑定到配置文件中 mybatis-config.xml
    
        
    
    ```

### 8.编写业务层

dao层完成后,开始编写业务层[service]:BookService接口
```java
    public interface BookService {
    
        public int addBook(Books books);//添加书籍
    
        public int deleteBookById(int id);//删除书籍
    
        public int updateBook(Books books);//修改一本书
    
        public Books queryBookById(int id);//查询一本书
    
        public List queryAllBook();//查询所有书籍
    
    }

然后再编写他的实现类:BookServiceImpl.java

service层调dao层 dao层只是完成增删查改,service层才会在增删查改的基础上加上逻辑判断等

    public class BookServiceImpl implements BookService{
        private BookMapper bookMapper;
    
        public BookServiceImpl(BookMapper bookMapper) {
            this.bookMapper = bookMapper;
        }
    
        public int addBook(Books books) {
            return bookMapper.addBook(books);
        }
    
        public int deleteBookById(int id) {
            return bookMapper.deleteBookById(id);
        }
    
        public int updateBook(Books books) {
            return bookMapper.updateBook(books);
        }
    
        public Books queryBookById(int id) {
            return bookMapper.queryBookById(id);
        }
    
        public List queryAllBook() {
            return bookMapper.queryAllBook();
        }
    }
9.编写spring-dao.xml配置文件

以上完成了mybatis层,然后开始整合spring层

spring-dao.xml
    
    
    
    
        
    
    
        
            
            
            
            
        
    
        
            
    
            
        
    
        
        
            
            
            
            
        
    
    
10.绑定service层 spring-service.xml
    
    
    
    
        
    
        
            
        
    
    
        
    
            
        
    
    
    
    

配置中的第2 点,注入spring,注解版:

    @Service
    public class BookServiceImpl implements BookService{
    @Autowired
        private BookMapper bookMapper;
    }
11.增加web支持

spring层整合完成,然后这个spring mvc层

web.xml
    
    
    
    
        
            springmvc
            org.springframework.web.servlet.DispatcherServlet
            
                contextConfigLocation
                classpath:spring-mvc.xml
            
            1
        
        
            springmvc
            /
        
    
    
        
            encoding
            org.springframework.web.filter.CharacterEncodingFilter
            
                encoding
                utf-8
            
        
        
            encoding
            
    
        //controller 调 service层
        @Autowired
        @Qualifier("BookServiceImpl")
        private BookService bookService;
    
        //跳转到展示所有书籍的页面
        @RequestMapping("/allBook")
        public String list(Model model){
            List list = bookService.queryAllBook();
            model.addAttribute("list",list);
            return "allBook";
        }
    
        //跳转到添加书籍的页面
        @RequestMapping("/toAddBook")
        public String toAddPaper(){
            return "addBook";
        }
    
        //处理添加书籍的请求
        @RequestMapping("/addBook")
        public String addBook(Books books){
            bookService.addBook(books);
            return "redirect:/allBook";
        }
    
        //跳转到修改页面
        @RequestMapping("/toUpdateBook")
        public String toUpdateBook(int id,Model model){
            Books books = bookService.queryBookById(id);
            model.addAttribute("QBook",books);
            return "updateBook";
        }
    
        //处理修改书籍信息的请求
        @RequestMapping("/updateBook")
        public String updateBook(Books books){
            bookService.updateBook(books);
            System.out.println("updateBook"+books+"***********");
            return "redirect:/allBook";
        }
    
    
        //处理书籍删除信息的请求  restful风格
        @RequestMapping("/deleteBook/{bookID}")
        public String deleteBook(@PathVariable("bookID") int id){
            bookService.deleteBookById(id);
            return "redirect:/allBook";
        }
        
    }
新增查询功能
    @Controller
    public class BookController {
        
    
        //controller 调 service层
        @Autowired
        @Qualifier("BookServiceImpl")
        private BookService bookService;
    
        //查询书籍
        @RequestMapping("/queryBook")
        public String queryBook(String queryBookName,Model model){
            Books books = bookService.queryBookByName(queryBookName);
            List list = new ArrayList();
            list.add(books);
            if(books==null){
                list = bookService.queryAllBook();
                model.addAttribute("error","没有此书!");
            }
            model.addAttribute("list",list);
            return "allBook";
        }
    }
allBook.jsp
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        Books Show
        
    
    
    
    
<%-- 查询书籍--%>
${error}
书籍编号 书籍名称 书籍数量 书籍详情 操作
${book.bookID} ${book.bookName} ${book.bookCounts} ${book.detail} 修改   |   删除
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/914888.html

Java相关栏目本月热门文章

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号