科技颠覆者 发表于 2023-1-11 12:09:58

JavaWeb综合案例

JavaWeb综合案例

笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html)
视频教程(P154~P163)

[*]功能列表
https://img2023.cnblogs.com/blog/2592433/202301/2592433-20230108204555888-1012264031.png
环境搭建


[*]执行提供的下面的tb_brand.sql脚本
-- 删除tb_brand表
drop table if exists tb_brand;
-- 创建tb_brand表
create table tb_brand (
    -- id 主键
    id         int primary key auto_increment,
    -- 品牌名称
    brand_name   varchar(20),
    -- 企业名称
    company_name varchar(20),
    -- 排序字段
    ordered      int,
    -- 描述信息
    descriptionvarchar(100),
    -- 状态:0:禁用1:启用
    status       int
);
-- 添加数据
insert into tb_brand (brand_name, company_name, ordered, description, status)
values
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('三只松鼠', '三只松鼠股份有限公司', 5, '好吃不上火', 0),
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1),
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('三只松鼠', '三只松鼠股份有限公司', 5, '好吃不上火', 0),
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1),
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('三只松鼠', '三只松鼠股份有限公司', 5, '好吃不上火', 0),
       ('华为', '华为技术有限公司', 100, '万物互联', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1),
       ('格力', '格力电器股份有限公司', 30, '让世界爱上中国造', 1),
       ('阿里巴巴', '阿里巴巴集团控股有限公司', 10, '买买买', 1),
       ('腾讯', '腾讯计算机系统有限公司', 50, '玩玩玩', 0),
       ('百度', '百度在线网络技术公司', 5, '搜搜搜', 0),
       ('京东', '北京京东世纪贸易有限公司', 40, '就是快', 1);
SELECT * FROM tb_brand;
[*]在idea中创建基本的JavaWeb模块(前端页面就是上一节最后的成品。基本结构的代码可以直接复制之前笔记的brand项目部分的后端代码内容,因为是以学习为目的,个人还是建议从头开始敲,想不起来的再看之前的笔记)
1.查询所有

https://img2023.cnblogs.com/blog/2592433/202301/2592433-20230108204609941-1964585003.png
2.新增品牌

https://img2023.cnblogs.com/blog/2592433/202301/2592433-20230108204615874-1944604443.png
Servlet代码优化

Web 层的Servlet个数太多了,不利于管理和编写
将Servlet进行归类,对于同一个实体的操作方法,写到一个Servlet中。比如: BrandServlet、
UserServlet(需要用到反射的知识)
https://img2023.cnblogs.com/blog/2592433/202301/2592433-20230108204625087-2081295977.png
3.修改品牌

后台代码和新增品牌类似
4.删除品牌

后台代码和新增品牌类似
5.批量删除

https://img2023.cnblogs.com/blog/2592433/202301/2592433-20230108204636647-624482344.png
6.分页查询

select * from tb_brand limit 0,5;-- 从第1条开始查,查5条页面传递的参数:当前页码、每页显示条数
参数1:开始索引=(当前页码-1)*每页显示条数
参数2:查询的条目数=每页显示条数
https://img2023.cnblogs.com/blog/2592433/202301/2592433-20230108204647805-2032676857.png
有两种数据,ajax只能一次性接收数据,两种数据需要后端同时发给前端,必须将两种数据封装到一起。又需要将数据转成json,所以只能创建新的Bean类来建立对象。
https://img2023.cnblogs.com/blog/2592433/202301/2592433-20230108204653811-1708803990.png
7.条件查询


[*]3个条件之间什么关系? AND
[*]3个条件必须全部填写吗? 不需要→动态SQL
[*]条件查询需要带分页吗? 需要
https://img2023.cnblogs.com/blog/2592433/202301/2592433-20230108204701000-97593690.png
前端代码优化

之前的代码需要用到var _this=this;
var _this=this;
axios({
    method: "post",
    url: "http://localhost:8080/brand-case/brand/selectByPageAndCondition?currentPage="+this.currentPage+"&pageSize="+this.pageSize,
    data:this.brand,
}).then(function(response){
    //设置表格数据
    _this.tableData = response.data.rows;//{"rows":[],"totalCount":52}
    //设置总记录数
    _this.totalCount = response.data.totalCount;
})可以改成以下方式,就不需要定义_this来获取data()中的数据了
axios({
    method: "post",
    url: "http://localhost:8080/brand-case/brand/selectByPageAndCondition?currentPage="+this.currentPage+"&pageSize="+this.pageSize,
    data:this.brand,
}).then(response =>{
    //设置表格数据
    this.tableData = response.data.rows;//{"rows":[],"totalCount":52}
    //设置总记录数
    this.totalCount = response.data.totalCount;
})完整代码

文件结构
https://img2023.cnblogs.com/blog/2592433/202301/2592433-20230108204714575-315839897.png
代码
brand-case
<blockquote>src/main
java
com.itwen
mapper
BrandMapper.java
package com.itwen.mapper;

import com.itwen.pojo.Brand;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface BrandMapper {

/**
   * 查询所有
   * @return
   */
    @Select("select * from tb_brand")
    @ResultMap("brandResultMap")
    List<Brand> selectAll();

    /**
   * 添加数据
   * @param brand
   */
    @Insert("insert into tb_brand values (null,#{brandName},#{companyName},#{ordered},#{description},#{status})")
    void add(Brand brand);


    /**
   * 修改数据
   * @param brand
   */
    @Update("UPDATE tb_brand SET brand_name= #{brandName},company_name=#{companyName},ordered=#{ordered},description=#{description},status=#{status} WHERE id=#{id}")
    void update(Brand brand);

    /**
   * 删除数据
   * @param id
   */
    @Delete("delete from tb_brand where id=#{id}")
    void deleteById(int id);

    /**
   * 批量删除
   * @param ids
   */
    void deleteByIds(@Param("ids") int[] ids);

    /**
   * 分页查询
   * @param begin
   * @param size
   * @return
   */
    @Select("select * from tb_brand limit #{begin},#{size}")
    @ResultMap("brandResultMap")
    List<Brand> selectByPage(@Param("begin") int begin,@Param("size") int size);

    /**
   * 查询总记录数
   * @return
   */
    @Select("select count(*) from tb_brand")
    int selectTotalCount();

    /**
   * 分页条件查询
   * @param begin
   * @param size
   * @param brand
   * @return
   */

    List<Brand> selectByPageAndCondition(@Param("begin") int begin,@Param("size") int size,@Param("brand") Brand brand);

    /**
   * 查询总记录数
   * @return
   */
    int selectTotalCountByCondition(Brand brand);
}pojo
Brand.java
package com.itwen.pojo;


public class Brand {

private Integer id;
private String brandName;
private String companyName;
private Integer ordered;
private String description;
private Integer status;

public String getStatusStr(){
   if (status==null){
         return "未知";
   }
   return status==0? "禁用":"启用";
}

public Integer getId() {
   return id;
}

public void setId(Integer id) {
   this.id = id;
}


public String getBrandName() {
   return brandName;
}

public void setBrandName(String brandName) {
   this.brandName = brandName;
}


public String getCompanyName() {
   return companyName;
}

public void setCompanyName(String companyName) {
   this.companyName = companyName;
}


public Integer getOrdered() {
   return ordered;
}

public void setOrdered(Integer ordered) {
   this.ordered = ordered;
}


public String getDescription() {
   return description;
}

public void setDescription(String description) {
   this.description = description;
}


public Integer getStatus() {
   return status;
}

public void setStatus(Integer status) {
   this.status = status;
}
}PageBean.java
package com.itwen.pojo;

import java.util.List;

public class PageBean<T> {
//总记录数
private int totalCount;
//当前页数据
private List<T> rows;//限制数据类型是为了防止存入的数据类型不一致,不使用<Brand>使用<T>是考虑到以后可能不只是用来存储Brand数组,例如查询用户列表

public int getTotalCount() {
   return totalCount;
}

public void setTotalCount(int totalCount) {
   this.totalCount = totalCount;
}

public List<T> getRows() {
   return rows;
}

public void setRows(List<T> rows) {
   this.rows = rows;
}
}service
impl
BrandServiceImpl.java
package com.itwen.service.impl;

import com.itwen.mapper.BrandMapper;
import com.itwen.pojo.Brand;
import com.itwen.pojo.PageBean;
import com.itwen.service.BrandService;
import com.itwen.util.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import java.util.List;

public class BrandServiceImpl implements BrandService {
//创建sqlSessionFactory工厂对象
SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

public List<Brand> selectAll(){
   //获取sqlSession对象
   SqlSession sqlSession = sqlSessionFactory.openSession();
   //获取BrandMapper
   BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
   //调用方法
   List<Brand> brands = mapper.selectAll();
   //释放资源
   sqlSession.close();
   return brands;
}

@Override
public void add(Brand brand) {
   //获取sqlSession对象
   SqlSession sqlSession = sqlSessionFactory.openSession();
   //获取BrandMapper
   BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
   //调用方法
   mapper.add(brand);
   sqlSession.commit();//提交事务
   //释放资源
   sqlSession.close();
}

@Override
public void update(Brand brand) {
   //获取sqlSession对象
   SqlSession sqlSession = sqlSessionFactory.openSession();
   //获取BrandMapper
   BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
   //调用方法
   mapper.update(brand);
   sqlSession.commit();//提交事务
   //释放资源
   sqlSession.close();
}

@Override
public void deleteById(int id) {
   //获取sqlSession对象
   SqlSession sqlSession = sqlSessionFactory.openSession();
   //获取BrandMapper
   BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
   //调用方法
   mapper.deleteById(id);
   sqlSession.commit();//提交事务
   //释放资源
   sqlSession.close();
}

@Override
public void deleteByIds(int[] ids) {
   //获取sqlSession对象
   SqlSession sqlSession = sqlSessionFactory.openSession();
   //获取BrandMapper
   BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
   //调用方法
   mapper.deleteByIds(ids);
   sqlSession.commit();//提交事务
   //释放资源
   sqlSession.close();
}

@Override
public PageBean<Brand> selectByPage(int currentPage, int pageSize) {
   //获取sqlSession对象
   SqlSession sqlSession = sqlSessionFactory.openSession();
   //获取BrandMapper
   BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
   //调用方法
   int totalCount = mapper.selectTotalCount();//总记录数
   int begin=(currentPage-1)*pageSize;
   List<Brand> brands = mapper.selectByPage(begin, pageSize);//当前页数据
   //封装
   PageBean<Brand> pageBean = new PageBean<>();
   pageBean.setTotalCount(totalCount);
   pageBean.setRows(brands);
   //释放资源
   sqlSession.close();
   return pageBean;
}

@Override
public PageBean<Brand> selectByPageAndCondition(int currentPage, int pageSize, Brand brand) {
   //获取sqlSession对象
   SqlSession sqlSession = sqlSessionFactory.openSession();
   //获取BrandMapper
   BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
   //模糊查询,需要加上%(不能在写sql语句部分加,会出问题。例如: like %‘华为’%)
   String brandName = brand.getBrandName();
   if (brandName!=null && brandName.length()>0){
         brand.setBrandName("%"+brandName+"%");
   }
   String companyName = brand.getCompanyName();
   if (companyName!=null && companyName.length()>0){
         brand.setCompanyName("%"+companyName+"%");
   }
   //调用方法
   int totalCount = mapper.selectTotalCountByCondition(brand);//总记录数
   int begin=(currentPage-1)*pageSize;
   List<Brand> brands = mapper.selectByPageAndCondition(begin, pageSize,brand);//当前页数据
   //封装
   PageBean<Brand> pageBean = new PageBean<>();
   pageBean.setTotalCount(totalCount);
   pageBean.setRows(brands);
   //释放资源
   sqlSession.close();
   return pageBean;
}
}BrandService.java
package com.itwen.service;

import com.itwen.pojo.Brand;
import com.itwen.pojo.PageBean;

import java.util.List;

//这里service使用接口是为了降低与servlet的耦合度,目前展示没多大用,以后学了sping就懂了
public interface BrandService {
    /**
   * 查询所有
   * @return
   */
    List<Brand> selectAll();

    /**
   * 添加数据
   * @param brand
   */
    void add(Brand brand);

    /**
   * 修改数据
   * @param brand
   */
    void update(Brand brand);

    /**
   * 删除数据
   * @param id
   */
    void deleteById(int id);

    /**
   * 批量删除
   * @param ids
   */
    void deleteByIds(int[] ids);

    /**
   * 分页查询
   * @param currentPage 当前页码
   * @param pageSize 每页显示条数
   * @return
   */
    PageBean<Brand> selectByPage(int currentPage, int pageSize);

    /**
   * 分页条件查询
   * @param currentPage
   * @param pageSize
   * @param brand
   * @return
   */
    PageBean<Brand> selectByPageAndCondition(int currentPage, int pageSize,Brand brand);
}util
SqlSessionFactoryUtils.java
package com.itwen.util;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

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;
}
}web.servlet
BaseServlet.java
package com.itwen.web.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class BaseServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   //获取请求路径
   String uri = req.getRequestURI();// brand-case/brand/selectAll
//      System.out.println(uri);
   //获取最后一段路径(也是方法名)
   int index = uri.lastIndexOf('/');
   String methodName = uri.substring(index+1);// /selectAll
//      System.out.println(methodName);
   Class<? extends BaseServlet> cls = this.getClass();//获取当前类
   //获取方法Method对象
   try {
         Method method = cls.getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
         method.invoke(this,req,resp);
   } catch (NoSuchMethodException e) {
         e.printStackTrace();
   } catch (IllegalAccessException e) {
         e.printStackTrace();
   } catch (InvocationTargetException e) {
         e.printStackTrace();
   }
}
}mybatis-config.xml
package com.itwen.web.servlet;

import com.alibaba.fastjson.JSON;
import com.itwen.pojo.Brand;
import com.itwen.pojo.PageBean;
import com.itwen.service.BrandService;
import com.itwen.service.impl.BrandServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.List;

@WebServlet("/brand/*")
public class BrandServlet extends BaseServlet{
private BrandService brandService=new BrandServiceImpl();

/**
   * 查询所有
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void selectAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //调用service查询
      List<Brand> brands = brandService.selectAll();
      //数据转为json
      String jsonString = JSON.toJSONString(brands);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }

    /**
   * 添加品牌
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);
      //调用service添加
      brandService.add(brand);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 修改信息
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);
      //调用service添加
      brandService.update(brand);
      //响应成功标识
      resp.getWriter().write("success");
    }

    public void deleteById(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为 int
      int id = JSON.parseObject(params, int.class);//fastjson也可以用来字符串转数组
      //调用services批量删除
      brandService.deleteById(id);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 批量删除品牌
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void deleteByIds(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为 int[]
      int[] ids = JSON.parseObject(params, int[].class);//fastjson也可以用来字符串转数组
      //调用services批量删除
      brandService.deleteByIds(ids);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 分页查询
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void selectByPage(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //接收数据 当前页码和每页条数 url?currentPage=1&pageSize=5
      String _currentPage = req.getParameter("currentPage");
      String _pageSize = req.getParameter("pageSize");
      int currentPage = Integer.parseInt(_currentPage);
      int pageSize = Integer.parseInt(_pageSize);
      //调用service查询
      PageBean<Brand> brandPageBean = brandService.selectByPage(currentPage, pageSize);
      //数据转为json
      String jsonString = JSON.toJSONString(brandPageBean);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }

    public void selectByPageAndCondition(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //接收数据 当前页码和每页条数 url?currentPage=1&pageSize=5
      String _currentPage = req.getParameter("currentPage");
      String _pageSize = req.getParameter("pageSize");
      int currentPage = Integer.parseInt(_currentPage);
      int pageSize = Integer.parseInt(_pageSize);

      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);

      //调用service查询
      PageBean<Brand> pageBean = brandService.selectByPageAndCondition(currentPage, pageSize,brand);
      //数据转为json
      String jsonString = JSON.toJSONString(pageBean);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }
}webapp
WEB-INF
web.xml(这个不自己写,创建项目结构时使用idea生成)
brand.html
      Titlepackage com.itwen.web.servlet;

import com.alibaba.fastjson.JSON;
import com.itwen.pojo.Brand;
import com.itwen.pojo.PageBean;
import com.itwen.service.BrandService;
import com.itwen.service.impl.BrandServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.List;

@WebServlet("/brand/*")
public class BrandServlet extends BaseServlet{
private BrandService brandService=new BrandServiceImpl();

/**
   * 查询所有
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void selectAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //调用service查询
      List<Brand> brands = brandService.selectAll();
      //数据转为json
      String jsonString = JSON.toJSONString(brands);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }

    /**
   * 添加品牌
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);
      //调用service添加
      brandService.add(brand);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 修改信息
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);
      //调用service添加
      brandService.update(brand);
      //响应成功标识
      resp.getWriter().write("success");
    }

    public void deleteById(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为 int
      int id = JSON.parseObject(params, int.class);//fastjson也可以用来字符串转数组
      //调用services批量删除
      brandService.deleteById(id);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 批量删除品牌
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void deleteByIds(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为 int[]
      int[] ids = JSON.parseObject(params, int[].class);//fastjson也可以用来字符串转数组
      //调用services批量删除
      brandService.deleteByIds(ids);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 分页查询
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void selectByPage(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //接收数据 当前页码和每页条数 url?currentPage=1&pageSize=5
      String _currentPage = req.getParameter("currentPage");
      String _pageSize = req.getParameter("pageSize");
      int currentPage = Integer.parseInt(_currentPage);
      int pageSize = Integer.parseInt(_pageSize);
      //调用service查询
      PageBean<Brand> brandPageBean = brandService.selectByPage(currentPage, pageSize);
      //数据转为json
      String jsonString = JSON.toJSONString(brandPageBean);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }

    public void selectByPageAndCondition(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //接收数据 当前页码和每页条数 url?currentPage=1&pageSize=5
      String _currentPage = req.getParameter("currentPage");
      String _pageSize = req.getParameter("pageSize");
      int currentPage = Integer.parseInt(_currentPage);
      int pageSize = Integer.parseInt(_pageSize);

      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);

      //调用service查询
      PageBean<Brand> pageBean = brandService.selectByPageAndCondition(currentPage, pageSize,brand);
      //数据转为json
      String jsonString = JSON.toJSONString(pageBean);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }
}                        查询                            批量删除      新增package com.itwen.web.servlet;

import com.alibaba.fastjson.JSON;
import com.itwen.pojo.Brand;
import com.itwen.pojo.PageBean;
import com.itwen.service.BrandService;
import com.itwen.service.impl.BrandServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.List;

@WebServlet("/brand/*")
public class BrandServlet extends BaseServlet{
private BrandService brandService=new BrandServiceImpl();

/**
   * 查询所有
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void selectAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //调用service查询
      List<Brand> brands = brandService.selectAll();
      //数据转为json
      String jsonString = JSON.toJSONString(brands);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }

    /**
   * 添加品牌
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);
      //调用service添加
      brandService.add(brand);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 修改信息
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);
      //调用service添加
      brandService.update(brand);
      //响应成功标识
      resp.getWriter().write("success");
    }

    public void deleteById(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为 int
      int id = JSON.parseObject(params, int.class);//fastjson也可以用来字符串转数组
      //调用services批量删除
      brandService.deleteById(id);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 批量删除品牌
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void deleteByIds(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为 int[]
      int[] ids = JSON.parseObject(params, int[].class);//fastjson也可以用来字符串转数组
      //调用services批量删除
      brandService.deleteByIds(ids);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 分页查询
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void selectByPage(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //接收数据 当前页码和每页条数 url?currentPage=1&pageSize=5
      String _currentPage = req.getParameter("currentPage");
      String _pageSize = req.getParameter("pageSize");
      int currentPage = Integer.parseInt(_currentPage);
      int pageSize = Integer.parseInt(_pageSize);
      //调用service查询
      PageBean<Brand> brandPageBean = brandService.selectByPage(currentPage, pageSize);
      //数据转为json
      String jsonString = JSON.toJSONString(brandPageBean);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }

    public void selectByPageAndCondition(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //接收数据 当前页码和每页条数 url?currentPage=1&pageSize=5
      String _currentPage = req.getParameter("currentPage");
      String _pageSize = req.getParameter("pageSize");
      int currentPage = Integer.parseInt(_currentPage);
      int pageSize = Integer.parseInt(_pageSize);

      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);

      //调用service查询
      PageBean<Brand> pageBean = brandService.selectByPageAndCondition(currentPage, pageSize,brand);
      //数据转为json
      String jsonString = JSON.toJSONString(pageBean);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }
}                                                                              提交                取消package com.itwen.web.servlet;

import com.alibaba.fastjson.JSON;
import com.itwen.pojo.Brand;
import com.itwen.pojo.PageBean;
import com.itwen.service.BrandService;
import com.itwen.service.impl.BrandServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.List;

@WebServlet("/brand/*")
public class BrandServlet extends BaseServlet{
private BrandService brandService=new BrandServiceImpl();

/**
   * 查询所有
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void selectAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //调用service查询
      List<Brand> brands = brandService.selectAll();
      //数据转为json
      String jsonString = JSON.toJSONString(brands);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }

    /**
   * 添加品牌
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);
      //调用service添加
      brandService.add(brand);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 修改信息
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);
      //调用service添加
      brandService.update(brand);
      //响应成功标识
      resp.getWriter().write("success");
    }

    public void deleteById(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为 int
      int id = JSON.parseObject(params, int.class);//fastjson也可以用来字符串转数组
      //调用services批量删除
      brandService.deleteById(id);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 批量删除品牌
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void deleteByIds(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为 int[]
      int[] ids = JSON.parseObject(params, int[].class);//fastjson也可以用来字符串转数组
      //调用services批量删除
      brandService.deleteByIds(ids);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 分页查询
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void selectByPage(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //接收数据 当前页码和每页条数 url?currentPage=1&pageSize=5
      String _currentPage = req.getParameter("currentPage");
      String _pageSize = req.getParameter("pageSize");
      int currentPage = Integer.parseInt(_currentPage);
      int pageSize = Integer.parseInt(_pageSize);
      //调用service查询
      PageBean<Brand> brandPageBean = brandService.selectByPage(currentPage, pageSize);
      //数据转为json
      String jsonString = JSON.toJSONString(brandPageBean);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }

    public void selectByPageAndCondition(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //接收数据 当前页码和每页条数 url?currentPage=1&pageSize=5
      String _currentPage = req.getParameter("currentPage");
      String _pageSize = req.getParameter("pageSize");
      int currentPage = Integer.parseInt(_currentPage);
      int pageSize = Integer.parseInt(_pageSize);

      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);

      //调用service查询
      PageBean<Brand> pageBean = brandService.selectByPageAndCondition(currentPage, pageSize,brand);
      //数据转为json
      String jsonString = JSON.toJSONString(pageBean);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }
}                                                                        修改                  删除package com.itwen.web.servlet;

import com.alibaba.fastjson.JSON;
import com.itwen.pojo.Brand;
import com.itwen.pojo.PageBean;
import com.itwen.service.BrandService;
import com.itwen.service.impl.BrandServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.List;

@WebServlet("/brand/*")
public class BrandServlet extends BaseServlet{
private BrandService brandService=new BrandServiceImpl();

/**
   * 查询所有
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void selectAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //调用service查询
      List<Brand> brands = brandService.selectAll();
      //数据转为json
      String jsonString = JSON.toJSONString(brands);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }

    /**
   * 添加品牌
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);
      //调用service添加
      brandService.add(brand);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 修改信息
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);
      //调用service添加
      brandService.update(brand);
      //响应成功标识
      resp.getWriter().write("success");
    }

    public void deleteById(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为 int
      int id = JSON.parseObject(params, int.class);//fastjson也可以用来字符串转数组
      //调用services批量删除
      brandService.deleteById(id);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 批量删除品牌
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void deleteByIds(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为 int[]
      int[] ids = JSON.parseObject(params, int[].class);//fastjson也可以用来字符串转数组
      //调用services批量删除
      brandService.deleteByIds(ids);
      //响应成功标识
      resp.getWriter().write("success");
    }

    /**
   * 分页查询
   * @param req
   * @param resp
   * @throws ServletException
   * @throws IOException
   */
    public void selectByPage(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //接收数据 当前页码和每页条数 url?currentPage=1&pageSize=5
      String _currentPage = req.getParameter("currentPage");
      String _pageSize = req.getParameter("pageSize");
      int currentPage = Integer.parseInt(_currentPage);
      int pageSize = Integer.parseInt(_pageSize);
      //调用service查询
      PageBean<Brand> brandPageBean = brandService.selectByPage(currentPage, pageSize);
      //数据转为json
      String jsonString = JSON.toJSONString(brandPageBean);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }

    public void selectByPageAndCondition(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //接收数据 当前页码和每页条数 url?currentPage=1&pageSize=5
      String _currentPage = req.getParameter("currentPage");
      String _pageSize = req.getParameter("pageSize");
      int currentPage = Integer.parseInt(_currentPage);
      int pageSize = Integer.parseInt(_pageSize);

      req.setCharacterEncoding("UTF-8");//如果post的数据乱码,加上这句
      //接收品牌数据
      BufferedReader br = req.getReader();
      String params = br.readLine();
      //转为Brand对象
      Brand brand = JSON.parseObject(params, Brand.class);

      //调用service查询
      PageBean<Brand> pageBean = brandService.selectByPageAndCondition(currentPage, pageSize,brand);
      //数据转为json
      String jsonString = JSON.toJSONString(pageBean);
      //写数据
      resp.setContentType("text/json;charset=utf-8");
      resp.getWriter().write(jsonString);
    }
}                                                                                                                  提交                取消                                    pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
      version="4.0">
</web-app>
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: JavaWeb综合案例