基于javaweb的JSP+Servlet电影票售票管理系统(java+jsp+servlet+javabean+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

后台:管理用户、影片、排片、影厅、订单、影评等

前台:注册登录、查看排片、详情,选座、购票等

110123122502

220923382606

240923382606

后台

550123112502

560123112502

570123112502

580123112502

590123112502

000123122502

010123122502

030123122502

040123122502

前台

050123122502

060123122502

070123122502

080123122502

090123122502

100123122502

技术框架

JSP Servlet MySQL C3P0 DBUtil Tomcat JavaScript CSS

基于javaweb的JSP+Servlet电影票售票管理系统(java+jsp+servlet+javabean+mysql)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
        }
}
}

private void doDel(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String movieName = req.getParameter("movie");
if (movieName != null) {
Movie movie = service.deleteByName(movieName);
//删除成功的话,把原图片一起删除
if (movie != null) {
new File(getServletContext().getRealPath(GetImageServlet.IMG_SERVLET_DIR), movie.pic_name).delete();
}
}
forwardToMoviesJsp(service.queryAll(), req, resp);
}

private void doUpdateMovie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String movieName = req.getParameter("movie");
if (movieName != null) {
//查询到则返回,没有则返回影片管理
Movie movie = service.queryByName(movieName);
if (movie == null) {
forwardToMoviesJsp(service.queryAll(), req, resp);
} else {
Utils.fillAttr(req, movie);
req.setAttribute("add", false);
req.getRequestDispatcher("/admin/add_update_movie.jsp").forward(req, resp);
}
} else {
addOrUpdateMovie(false, req, resp);
}
}

private void doAddMovie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (!ServletFileUpload.isMultipartContent(req)) {
req.setAttribute("add", true);
req.getRequestDispatcher("/admin/add_update_movie.jsp").forward(req, resp);
} else {
addOrUpdateMovie(true, req, resp);
}
}

private void addOrUpdateMovie(boolean add, HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//用来存参数
Map<String, String> map = new HashMap<>();
//上传图片
String uploadPath = getServletContext().getRealPath(GetImageServlet.IMG_SERVLET_DIR);
String tempPath = getServletContext().getRealPath("/WEB-INF/temp");
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 100);
factory.setRepository(new File(tempPath));
ServletFileUpload upload = new ServletFileUpload(factory);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    chain.doFilter(new MyHttpServletRequest((HttpServletRequest) request), response);
}

@Override
public void init(FilterConfig config) throws ServletException {
encoding = config.getServletContext().getInitParameter("encoding");
if (encoding == null) {
encoding = "utf-8";
}
}

class MyHttpServletRequest extends HttpServletRequestWrapper {

private HttpServletRequest request;
private boolean isEncoded = false;

MyHttpServletRequest(HttpServletRequest request) {
super(request);
this.request = request;
}

@Override
public String getParameter(String name) {
String[] values = getParameterMap().get(name);
return values == null ? null : values[0];
}

@Override
public Map<String, String[]> getParameterMap() {
try {
if ("POST".equalsIgnoreCase((request.getMethod()))) {
request.setCharacterEncoding(encoding);
return request.getParameterMap();
} else if ("GET".equalsIgnoreCase(request.getMethod())) {
if (!isEncoded) {
Map<String, String[]> map = request.getParameterMap();
for (Map.Entry<String, String[]> me : map.entrySet()) {
String[] values = me.getValue();
for (int i = 0; i < values.length; i++) {
values[i] = URLDecoder.decode(values[i], encoding);
}
}
isEncoded = true;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
        if (Utils.isEmpty(keyword)) {
backListToPlansJsp(planService.queryAll(), req, resp);
} else {
req.setAttribute("keyword", keyword);
backListToPlansJsp(planService.queryPlansByKeyword(keyword), req, resp);
}
}
}

private void doDel(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String planInfo = req.getParameter("plan");
if (planInfo != null) {
//从数据库删除
String[] ss = planInfo.split("_");
planService.delete(ss[0], ss[1], ss[2]);
}
resp.sendRedirect(req.getContextPath() + "/admin/plans");
}

private void doAdd(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String movieName = req.getParameter("movie");
if (movieName != null) {
Movie movie = moviceService.queryByName(movieName);
if (movie != null) {
req.setAttribute("movie_name", movie.name);
} else {
resp.sendRedirect(req.getContextPath() + "/admin/movies");
return;
}
} else {
Plan plan = new Plan();
Utils.populateToBean(plan, req.getParameterMap());
try {
planService.add(plan);
req.setAttribute("success", true);
} catch (MyException e) {
req.setAttribute("msg", e.getMessage());
Utils.fillAttr(req, plan);
}
}
//查询所有影厅,并返回
List<Hall> list = hallService.queryAll();
if (list != null) {
req.setAttribute("halls", list);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@Override
protected void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//根据url判断是做什么操作
String servletPath = req.getServletPath();
if (servletPath.contains("add")) {
doAddMovie(req, resp);
} else if (servletPath.contains("update")) {
doUpdateMovie(req, resp);
} else if (servletPath.contains("delete")) {
doDel(req, resp);
} else {
//如果关键字不为空,搜索返回,否则返回全部
String keyword = req.getParameter("keyword");
if (Utils.isEmpty(keyword)) {
forwardToMoviesJsp(service.queryAll(), req, resp);
} else {
req.setAttribute("keyword", keyword);
forwardToMoviesJsp(service.queryMoviesByKeyword(keyword), req, resp);
}
}
}

private void doDel(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String movieName = req.getParameter("movie");
if (movieName != null) {
Movie movie = service.deleteByName(movieName);
//删除成功的话,把原图片一起删除
if (movie != null) {
new File(getServletContext().getRealPath(GetImageServlet.IMG_SERVLET_DIR), movie.pic_name).delete();
}
}
forwardToMoviesJsp(service.queryAll(), req, resp);
}

private void doUpdateMovie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String movieName = req.getParameter("movie");
if (movieName != null) {
//查询到则返回,没有则返回影片管理
Movie movie = service.queryByName(movieName);
if (movie == null) {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
                            ms.overTime = DateUtils.formatDate(overTime, "HH:mm");
}
ms.price = plan.price;
ms.hallName = plan.hall_name;
Hall hall = hallService.queryByName(plan.hall_name);
if (hall == null) {
resp.sendRedirect(req.getContextPath() + "/");
return;
} else {
ms.hallType = hall.type;
}
sessions.add(ms);
}
req.setAttribute("sessions", sessions);
req.setAttribute("title", "选择场次: " + movie.name);
req.getRequestDispatcher("/sessions.jsp").forward(req, resp);
} else {
resp.sendRedirect(req.getContextPath() + "/");
}
}
}
}
}
package com.demo.util.filter;



@WebFilter(urlPatterns = "/*")
public class EncodingFilter implements Filter {

private String encoding = null;

@Override
public void destroy() {

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    }
}
package com.demo.web;




/**
* 功能: 用户登录
*/
@WebServlet(urlPatterns = "/login")
public class LoginServlet extends BaseServlet {
private static final long serialVersionUID = 8264050085226713309L;
private UserService service = BaseFactory.getService(UserService.class);

@Override
protected void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
//带了登录界面的上级url的话,回到这个url,否则转到主页
String from = req.getParameter("from");
if (from != null) {
req.setAttribute("from", from);
}
if (username == null || password == null) {
req.getRequestDispatcher("/login.jsp").forward(req, resp);
} else {
try {
User user = service.valicateUser(username, password);
//检查验证码是否正确
String valicateCode = req.getParameter("valicateCode");
HttpSession session = req.getSession();
String sessionValicateCode = (String) session.getAttribute("valicateCode");
if (valicateCode == null || !valicateCode.equalsIgnoreCase(sessionValicateCode)) {
throw new MyException("验证码不正确");
}
req.getSession().setAttribute("user", user);
req.getSession().setMaxInactiveInterval(7200);


项目链接:
https://javayms.github.io?id=182221280407102ao
https://javayms.pages.dev?id=182221280407102ao