
写文件代码文件夹
写测试代码文件夹
写资源文件文件夹
写测试资源文件夹
注意事项
1、在web.xml中配置DispatcherServlet时,url-pattern的问题
<!--声明 springmvc 中央调度器--><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:/springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
1) / 匹配所有请求
会拦截所有资源,一般过滤器使用,而调度器不使用
2).do 匹配所有以 .do结尾的请求
不会匹配静态资源,所以能够直接访问
3)/ 匹配所有请求 (包含除 .jsp和.jspx 外的所有后缀)
/test.css -> /test 此时css和js等静态资源无法被访问 需要额外配置
2、web.xml中的版本号
| web.xml version(版本) | jdk | Tomcat |
|---|---|---|
| 2.4 | 1.4 | 5.5 |
| 2.5 | 5.0 | 6.0 |
| 3.0 | 6.0 | 7.0 |
| 3.1 | 7.0 | 8.0 |
| 4.0 | 8.0 | 9.0 |
可以向下兼容(支持更老的版本),不能向上兼容。
开发流程
设计库表
影片列表 影片详情 排片信息 选座购票
影院列表 影院详情(地区) 预售期(提前几天购票)
放映厅信息(座位排布 售票情况)
后天管理系统的内容
影片上架下架 影院新增删除 排片===
影片列表功能
1、设计数据库表结构
Film表
| 字段名 | 含义 | 类型 |
|---|---|---|
| id | 主键(自增) | bigint |
| film_id | 电影唯一id | varchar |
| name | 名字 | varchar |
| director | 导演 | varchar |
| player | 主演 | varchar |
| type | 类型 | varchar |
| country | 制片国家 | varchar |
| length | 片长(单位:分钟) | int |
| synopsis | 剧情介绍 | varchar |
| play_time | 上映时间 | date |
| img_path | 海报地址 | varchar |
对于entity类,需要实现序列化
生成序列化id
2、编写实体类、配置文件sql以及DAO
Film.java
// 这是实体类 和数据库中的表映射public class Film implements Serializable {private static final long serialVersionUID = -4427069375523038931L;private long id;private String film_id; // filmId 驼峰也可 需要额外配置private String name;private String director;private String player;private String type;private String country;private int length;private String synopsis;private Date play_time;private String img_path;// ... getter和setter方法省略}
filmMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.duing.dao.FilmDao"><!--`是转义字符 name是数据库的关键字 可以用转义字符改成普通颜色--><select id="getList" resultType="com.duing.entity.Film">select id,film_id,`name`,director,player,`type`,country,`length`,synopsis,play_time,img_pathfrom film</select></mapper>
FilmDao.java
public interface FilmDao {List<Film> getList();}
3、编写控制层和视图层
// 视图层对象 用来展示给用户使用 view objectpublic class FilmVo {private String filmId;private String name;private String director;private String imgPath;// ... getter和setter方法省略}
public interface FilmService {List<FilmVo> selectAll();}
@Servicepublic class FilmServiceImpl implements FilmService {@Autowiredprivate FilmDao filmDao;@Overridepublic List<FilmVo> selectAll() {List<Film> films = filmDao.getList();System.out.println("数据库中影片数量:" + films.size());List<FilmVo> result = new ArrayList<>();for (Film film : films) {FilmVo vo = new FilmVo();vo.setFilmId(film.getFilm_id());vo.setName(film.getName());vo.setDirector(film.getDirector());vo.setImgPath(film.getImg_path());result.add(vo);}return result;}}
@Controllerpublic class FilmController {@Autowiredprivate FilmService filmService;@RequestMapping("/filmList")@ResponseBodypublic List<FilmVo> selectAll() {List<FilmVo> filmVos = filmService.selectAll();return filmVos;}}
