作者主页:舒克日记
简介: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。
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();
}
}