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

一、项目描述

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

JavaWeb学习记录——servlet+tomcat+request+respond+JSP实战项目(使用MVC模式开发)
文章图片
二、环境准备
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.3、数据库表 tb_brand

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

2.4、实体类 Brand

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

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

【JavaWeb学习记录——servlet+tomcat+request+respond+JSP实战项目(使用MVC模式开发)】三、增删改查
3.1、查询所有操作 3.1.1、流程图

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

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页面 Title - 锐客网
序号 品牌名称 企业名称 排序 品牌介绍 状态 操作
${brand.id}${brand.brandName} ${brand.companyName} ${brand.ordered} ${brand.description} 启用 禁用 修改 删除

    推荐阅读