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"; } }