JavaWeb学习记录——servlet+tomcat+request+respond+JSP实战项目(使用MVC模式开发)

一、项目描述

完成品牌数据的增删改查操作

JavaWeb学习记录——servlet+tomcat+request+respond+JSP实战项目(使用MVC模式开发)_第1张图片

二、环境准备

2.1、创建新的模块 brand_demo,在pom.xml中引入项目需要坐标
    2.1.1、依赖:mybatis、mysql、servlet、jsp-api、
    2.2.2、插件:tomcat7-maven-plugin

2.2、创建三层架构的包结构

JavaWeb学习记录——servlet+tomcat+request+respond+JSP实战项目(使用MVC模式开发)_第2张图片


2.3、数据库表 tb_brand

image.png


2.4、实体类 Brand

JavaWeb学习记录——servlet+tomcat+request+respond+JSP实战项目(使用MVC模式开发)_第3张图片


2.5、MyBatis 基础环境
        Mybatis-config.xml
        BrandMapper.xml
        BrandMapper接口

三、增删改查

3.1、查询所有操作
    3.1.1、流程图

JavaWeb学习记录——servlet+tomcat+request+respond+JSP实战项目(使用MVC模式开发)_第4张图片


    3.1.2、编写BrandMapper:在mapper包下创建创建BrandMapper接口,在接口中定义 selectAll()方法
        /**
        * 查询所有
        * @return
        */
        @Select("select * from tb_brand")
        List selectAll();

    3.1.3、编写工具类:在 com.itheima 包下创建 utils 包,并在该包下创建名为 SqlSessionFactoryUtils 工具类
        public class SqlSessionFactoryUtils {
            private static SqlSessionFactory sqlSessionFactory;
            static {
                //静态代码块会随着类的加载而自动执行,且只执行一次
                try {
                    String resource = "mybatis-config.xml";
                    InputStream inputStream = Resources.getResourceAsStream(resource);
                    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
                public static SqlSessionFactory getSqlSessionFactory(){
                return sqlSessionFactory;
            }
        }


    3.1.4、 编写BrandService:在service包下创建BrandService类
        public class BrandService {
            SqlSessionFactory factory = SqlSessionFactoryUtils.getSqlSessionFactory();
            /**
            * 查询所有
            * @return
            */
            public List selectAll(){
                //调用BrandMapper.selectAll()
                //2. 获取SqlSession
                SqlSession sqlSession = factory.openSession();
                //3. 获取BrandMapper
                BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
                //4. 调用方法
                List brands = mapper.selectAll();
                sqlSession.close();
                return brands;
            }
        }



    3.1.5、 编写Servlet
        在 web 包下创建名为 SelectAllServlet 的 servlet ,该 servlet 的逻辑如下:
            1、调用 BrandService 的 selectAll() 方法进行业务逻辑处理,并接收返回的结果
            2、将上一步返回的结果存储到 request 域对象中
            3、跳转到 brand.jsp 页面进行数据的展示

        @WebServlet("/selectAllServlet")
        public class SelectAllServlet extends HttpServlet {
            private BrandService service = new BrandService();
            @Override
            protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {
                //1. 调用BrandService完成查询
                List brands = service.selectAll();
                //2. 存入request域中
                request.setAttribute("brands",brands);
                //3. 转发到brand.jsp
                request.getRequestDispatcher("/brand.jsp").forward(request,response);
            }
            @Override
            protected void doPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {
                    this.doGet(request, response);
            }
        }

    3.1.6、 编写brand.jsp页面
    <%--有坑,要设置isELIgnored="false" 不然无法解析brands,${brands}只会被当成字符输出--%>

    <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    
    
        
        Title
    
    
    

<%----%>
序号 品牌名称 企业名称 排序 品牌介绍 状态 操作
${brand.id}${status.count}${brand.brandName} ${brand.companyName} ${brand.ordered} ${brand.description} 启用 禁用 修改 删除

你可能感兴趣的:(java)