熟悉Restful架构-第一天

1.完成一个简易的增删改查课程的操作,以map集合来代替数据库的作用。

搭建框架:

  • 注入依赖:主要的包
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.0</version>
    </dependency>
  • 前端控制器配置
  <filter>
    <filter-name>CharacterEncoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>//字符过滤器
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>//将post请求转化为put,delete
  </filter>
  <filter-mapping>
    <filter-name>CharacterEncoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!--  可以将post请求转化为put/delete-->
  <filter-mapping>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  • spring配置文件
<context:component-scan base-package="per.lc.Restful"/>//扫描包
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">//视图解析
        <property name="prefix" value="/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
  • 实体类
public class Course {
    private Integer id;
    private String name;
    private Double price;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Double getPrice() {
        return price;
    }
    public void setPrice(Double price) {
        this.price = price;
    }
}
  • dao层
@Repository
public class CourseDao {
    private Map<Integer, Course> courses=new HashMap<>();
    //将course对象添加到map集合中
    public void add(Course course){
        courses.put(course.getId(),course);
    }
    //查询集合中所有的对象
    public Collection<Course> getAll(){
        return courses.values();
    }
    //由id来查询对象
    public Course selectById(Integer id){
        return courses.get(id);
    }
    //修改
    public void update(Course course){
        courses.put(course.getId(),course);
    }
    //删除课程
    public void delete(Integer id){
        courses.remove(id);
    }
}
  • Handler类
@Controller
public class MyHandler {
    @Resource
    private CourseDao courseDao;
    @PostMapping(value = "/save")
    public String save(Course course){
        courseDao.add(course);
        return "redirect:/getAll";
    }
    @GetMapping("/getAll")
    public ModelAndView getAll(){
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("courses",courseDao.getAll());
        modelAndView.setViewName("show");
        return modelAndView;
    }
    @GetMapping("/getById/{id}")
    public ModelAndView getById(@PathVariable("id") Integer id){
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("course",courseDao.selectById(id));
        modelAndView.setViewName("edit");
        return modelAndView;
    }
    @PutMapping("/update")
    public String update(Course course){
        courseDao.update(course);
        return "redirect:/getAll";
    }
    @DeleteMapping("/delete/{id}")
    public String remove(@PathVariable("id")Integer id){
        courseDao.delete(id);
        return "redirect:/getAll";
    }
}

猜你喜欢

转载自www.cnblogs.com/liu-chen/p/11738872.html
今日推荐