Java项目:13 SSM的电影购票系统

作者主页:源码空间codegym

简介:Java领域优质创作者、Java项目、学习资料、技术互助

文中获取源码

项目介绍

电影院购票系统 两个角色模块,第一个是普通用户模块, 第二是系统管理员模块。

普通用户功能模块 包括普通用户的注册和登录以及退出基本的功能,还包括用户的信息管理。 用户查看电影票以及电影院选座位和下单支付购票以及观影后的发布电影影评。

管理员功能模块 包括用户的管理,影片管理(包括对影片的修改,上架,删除,排片,搜索),电影院影厅的设置 (可以分配和管理影厅以及设置几排几座),订单的管理,排片管理,首页,查看票房统计和记录等相关的信息。

环境要求

1.运行环境:最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat7.x,8.X,9.x版本均可

4.硬件环境:windows7/8/10 4G内存以上;或者Mac OS;

5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven.项目

6.数据库:MySql5.7/8.0等版本均可;

技术栈

后台框架:SSM、MyBatis

数据库:MySQL

环境:JDK8、TOMCAT、IDEA

使用说明

1.使用Navicati或者其它工具,在mysql中创建对应sq文件名称的数据库,并导入项目的sql文件;

2.使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置,然后运行;

运行指导

idea导入源码空间站顶目教程说明(Vindows版)-ssm篇:

http://mtw.so/5MHvZq

源码地址:http://codegym.top。

运行截图

界面

在这里插入图片描述

QQ浏览器截图20240124231031

QQ浏览器截图20240124231059

QQ浏览器截图20240124231109

QQ浏览器截图20240124231203

QQ浏览器截图20240124231215

QQ浏览器截图20240124231227

QQ浏览器截图20240124231247

QQ浏览器截图20240124231316

QQ浏览器截图20240124231340

代码

EncodingFilter

package com.demo.filter;

import java.io.IOException;
import java.net.URLDecoder;
import java.util.Map;

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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;

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

    private String encoding = null;

    @Override
    public void destroy() {

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain) throws IOException, ServletException {
        //解决响应乱码
        response.setCharacterEncoding(encoding);
        response.setContentType("text/html;charset=" + encoding);
        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;
                        return map;
                    } else {
                        return request.getParameterMap();
                    }
                } else {
                    return request.getParameterMap();
                }
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }

        @Override
        public String[] getParameterValues(String name) {
            return getParameterMap().get(name);
        }
    }
}

InitListener

package com.demo.listener;

import com.demo.dao.DaoInitializer;
import com.demo.factory.BaseFactory;
import com.demo.mgr.DataSourceMgr;
import com.demo.service.AdminService;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

/**
 * 时间: 2017/11/19 10:25
 * 功能: 做一些初始化的操作
 */
@WebListener
public class InitListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        DaoInitializer.init();
        AdminService service = BaseFactory.getService(AdminService.class);
        service.addSysAdmin("admin", "123456");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        DataSourceMgr.clearUp();
    }
}

你可能感兴趣的:(源码资源,java,开发语言)