跨域请求过滤器(CorsFilter),放入util包,需要在web.xml中配置
在util包加入ReturnData,统一Restful接口返回值格式
通过测试来验证框架的集成
8、注意:查看本地仓库地址
二、后台开发1、 配置数据源下载better mybatis generator插件
中文版插件:Chinse(Simplified)LanguagePack/中文语言包
连接数据库
2、 生成后台程序 三、后端代码 1、resources/jdbc.properties(注意查看连接的数据库、用户、密码)
2、配置tomcatjdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/eshop?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456
jdbc.initialSize=10
jdbc.maxTotal=100
jdbc.maxIdle=50
jdbc.minIdle=10
jdbc.maxWaitMillis=-1
部署项目
2、resources目录下的OrderMapper3、实体类 model目录下的Orderid, order_desc, amount, cust_name, cust_phone, cust_addr select from t_order where id = #{id,jdbcType=INTEGER}
package com.zking.ssm.model;
import java.io.Serializable;
import lombok.Data;
@Data
public class Order implements Serializable {
private Integer id;
private String orderDesc;
private Double amount;
private String custName;
private String custPhone;
private String custAddr;
private static final long serialVersionUID = 1L;
}
4、util目录下配置允许跨域访问CorsFilter
package com.zking.ssm.util;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CorsFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
HttpServletRequest req = (HttpServletRequest) servletRequest;
// Access-Control-Allow-Origin就是我们需要设置的域名
// Access-Control-Allow-Headers跨域允许包含的头。
// Access-Control-Allow-Methods是允许的请求方式
httpResponse.setHeader("Access-Control-Allow-Origin", "*");// *,任何域名
httpResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE");
httpResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept,jwt");
//允许客户端,处理一个新的响应头jwt
httpResponse.setHeader("Access-Control-Expose-Headers", "jwt");
// axios的ajax会发两次请求,第一次提交方式为:option,直接返回即可
if ("OPTIONS".equals(req.getMethod())) {
return;
}
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
5、mapper目录下的OrderMapper
package com.zking.ssm.mapper;
import com.zking.ssm.model.Order;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface OrderMapper {
int deleteByPrimaryKey(Integer id);
int insert(Order record);
int insertSelective(Order record);
Order selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(Order record);
int updateByPrimaryKey(Order record);
// 模糊查询
List listOrders(@Param("orderDesc") String orderDesc);
}
6、service目录下的IOrderService
package com.zking.ssm.service;
import com.zking.ssm.model.Order;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface IOrderService {
int deleteByPrimaryKey(Integer id);
List listOrders(@Param("orderDesc") String orderDesc);
int insert(Order record);
}
7、service目录下的OrderService
package com.zking.ssm.service;
import com.zking.ssm.mapper.OrderMapper;
import com.zking.ssm.model.Order;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class OrderService implements IOrderService {
@Autowired
private OrderMapper orderMapper;
// 删除
@Override
public int deleteByPrimaryKey(Integer id) {
return orderMapper.deleteByPrimaryKey(id);
}
// 查询
@Override
public List listOrders(String orderDesc) {
return orderMapper.listOrders(orderDesc);
}
// 增加
@Override
public int insert(Order record) {
return orderMapper.insert(record);
}
}
8、Controller目录下的OrderController
package com.zking.ssm.controller;
import com.zking.ssm.model.Order;
import com.zking.ssm.service.IOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
public class OrderController {
@Autowired
private IOrderService orderService;
// 查询
@GetMapping("/orders")
public Object getOrders(String orderDesc) {
List orders = orderService.listOrders(orderDesc);
Map data = new HashMap<>();
data.put("code", 1);
data.put("msg", "操作成功");
data.put("data", orders);
return data;
}
// 增加
@PostMapping("/insert")
public Object insert(Order order) {
Map data = new HashMap<>();
try {
orderService.insert(order);
data.put("code", 1);
data.put("msg", "操作成功");
return data;
} catch (Exception e) {
e.printStackTrace();
data.put("code", -1);
data.put("msg", "操作失败");
return data;
}
}
// 删除
@DeleteMapping("/del")
public Object delete(Integer id) {
Map map = new HashMap<>();
try {
orderService.deleteByPrimaryKey(id);
map.put("code", 1);
map.put("msg", "操作成功");
} catch (Exception e) {
e.printStackTrace();
map.put("code", -1);
map.put("msg", "操作失败");
}
return map;
}
}
9、Controller目录下的HomeController
package com.zking.ssm.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HomeController {
@RequestMapping("/")
public String toIndex(){
return "index";
}
}
四、前端
(注意,前端代码一定是在非中文目录下的)
导入文件
npm install
npm run dev
1、OrderList
SSM阶段机试,ts={{ts}}
查询
新增
删除
修改
取 消
确 定
2、action.js
export default {
//服务器
'SERVER': 'http://localhost:8080/ssm',
// 获取订单
'ORDERMSG_REQ':'/orders',
//增加书本信息
'ORDERMSG_ADD' : '/insert',
// 删除
'ORDERMSG_DEL' : '/del',
//获得请求的完整地址,用于mockjs测试时使用
'getFullPath': k => {
return this.SERVER + this[k];
}
}



