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

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

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

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

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

后台

前台

技术框架

JSP Servlet MySQL C3P0 DBUtil Tomcat JavaScript CSS

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

                ticket.ticketCount = ticket.seats.size();
                ticket.price = String.format("%.2f", plan.price);
                ticket.totalPrice = String.format("%.2f", order.amount);
                //根据当前时间对比放映时间,判断订单状态
                long currentTime = System.currentTimeMillis();
                if (currentTime < plan.play_time) {
                    ticket.state = "待放映";
                } else if (currentTime > plan.play_time && currentTime < plan.play_time + movie.duration * 60000) {
                    ticket.state = "正在放映";
                } else {
                    ticket.state = "已放映";
                }
                return ticket;                
            }
        }
        return null;
    }

    private void forwardToOrderJsp(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        User user = (User) req.getSession().getAttribute("user");
        req.setAttribute("tickets", getTicketList(String.valueOf(user.id)));
        req.setAttribute("chkItem", 2);
        req.getRequestDispatcher("/tickets.jsp").forward(req, resp);
    }
}

/**
 * 描述: 写影评
 */
@WebServlet(urlPatterns = "/evaluate")
public class WriteEvaluateServlet extends BaseServlet {
    private static final long serialVersionUID = -3514964050010797273L;
    private EvaluateService evaluateService = BaseFactory.getService(EvaluateService.class);
    private MoviceService moviceService = BaseFactory.getService(MoviceService.class);
                                //查询这个座位是否正确
                                String[] rc = key.split("_");
                                if (hall.rows >= Integer.valueOf(rc[0]) && hall.columns >= Integer.valueOf(rc[1])) {  
                                    if (count == 0) {
                                        sb.append("|");
                                    }                 
                                    sb.append(key);
                                    sb.append("|");
                                    count++;
                                } else {
                                    throw new MyException("选座失败,座位号与实际不符,请重新选座。");
                                }
                            }
                        }
                        if (sb.length() == 0) {
                            throw new MyException("请选择座位。");
                        }
                        order.seat = sb.toString();
                        order.amount = Math.floor(plan.price * count * 100) / 100;                        
                    } catch (MyException e) {
                        req.setAttribute("failed", e.getMessage());
                        req.setAttribute("session", session);
                        req.setAttribute("title", String.format("%s(%s)", plan.movie_name, DateUtils.formatDate(plan.play_time, "yyyy-MM-dd HH:mm")));
                        req.getRequestDispatcher("/seat.jsp").forward(req, resp);
                        return;
                    }
                    //选座成功
                    req.setAttribute("order", order);
                    req.setAttribute("session", session);
                    req.setAttribute("title", String.format("%s(%s)", plan.movie_name, DateUtils.formatDate(plan.play_time, "yyyy-MM-dd HH:mm")));
                    req.getRequestDispatcher("/seat.jsp").forward(req, resp);
                    return;
                }
            }
        }
        resp.sendRedirect(req.getContextPath() + "/");
    }
}

            if (plan != null) {
                Hall hall = hallService.queryByName(plan.hall_name);
                if (hall != null) {
                    List<List<Seat>> rowSeats = new ArrayList<>();
                    for (int i = 1; i <= hall.rows; i++) {
                        List<Seat> seats = new ArrayList<>();
                        for (int j = 1; j <= hall.columns; j++) {
                            Seat seat = new Seat();
                            seat.seat = i + "_" + j;
                            seat.sold = orderService.isSeatSold(String.valueOf(plan.id), seat.seat);
                            seats.add(seat);
                        }
                        rowSeats.add(seats);
                    }
                    req.setAttribute("price", plan.price);
                    req.setAttribute("session", session);
                    req.setAttribute("seats", rowSeats);
                    req.setAttribute("title", String.format("%s(%s %s)", plan.movie_name, hall.type, DateUtils.formatDate(plan.play_time, "yyyy-MM-dd HH:mm")));
                    req.getRequestDispatcher("/seat.jsp").forward(req, resp);
                } else {
                    resp.sendRedirect(req.getContextPath() + "/");
                }
            } else {
                resp.sendRedirect(req.getContextPath() + "/");
            }
        }
    }
}

@WebServlet(urlPatterns = "/code")
public class ValicateImgServlet extends HttpServlet {
    private static final long serialVersionUID = -8609971128908819964L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setIntHeader("Expires", -1);
        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);
        String fileName = null;
        try {
            if (!ServletFileUpload.isMultipartContent(req)) {
        String servletPath = req.getServletPath();
        if (servletPath.contains("delete")) {
            doDel(req, resp);
        } else if (servletPath.contains("update")) {
            doUpdate(req, resp);
        } else {
            String keyword = req.getParameter("keyword");
            if (keyword == null) {
                forwardToOrdersJsp(fillFields(orderService.queryAll()), req, resp);
            } else {
                forwardToOrdersJsp(fillFields(Collections.singletonList(orderService.query(keyword))), req, resp);
            }
        }
    }

    private void doUpdate(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        String id = req.getParameter("id");
        String amount = req.getParameter("amount");
        if (id != null && amount != null) {
            Double value = Double.valueOf(amount);
            value = Math.floor(value * 100) / 100;
            orderService.update(id, value);
        }
        resp.sendRedirect(req.getContextPath() + "/admin/orders");
    }

    private List<Order> fillFields(List<Order> list) {
        if (list != null) {
            for (Order order : list) {
                User user = userService.query(String.valueOf(order.user_id));
                if (user != null) {
                    order.username = user.username;                        
                }
            }
        }        
        return list;
    }
    
    private void doDel(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        String id = req.getParameter("id");
        if (id != null) {
            orderService.delete(id);
        }
        resp.sendRedirect(req.getContextPath() + "/admin/orders");
    }

    private void forwardToOrdersJsp(List<Order> list, HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        if (list != null) {
            req.setAttribute("orders", list);
        }
        req.setAttribute("chkItem", 4);

/**
 * 描述:
 */
@WebServlet(urlPatterns = "/sessions")
public class MovieSessionServlet extends BaseServlet {
    private static final long serialVersionUID = 8082316534539662567L;
    private PlanService planService = BaseFactory.getService(PlanService.class);
    private HallService hallService = BaseFactory.getService(HallService.class);
    private MoviceService moviceService = BaseFactory.getService(MoviceService.class);

    @Override
    protected void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String movieName = req.getParameter("movie");
        if (Utils.isEmpty(movieName)) {
            resp.sendRedirect(req.getContextPath() + "/");
        } else {
            Movie movie = moviceService.queryByName(movieName);
            if (movie == null) {
                resp.sendRedirect(req.getContextPath() + "/");
            } else {
                List<Plan> plans = planService.queryNotPlayPlansByMovieName(movie.name);
                if (plans != null && !plans.isEmpty()) {
                    List<MovieSession> sessions = new ArrayList<>();
                    for (Plan plan : plans) {
                        MovieSession ms = new MovieSession();
                        ms.planInfo = String.format("%s_%s_%d", plan.movie_name, plan.hall_name, plan.play_time);
                        ms.date = DateUtils.formatDate(plan.play_time, "yyyy-MM-dd");
                        ms.time = DateUtils.formatDate(plan.play_time, "HH:mm");
                        long overTime = plan.play_time + movie.duration * 60000;
                        if (!DateUtils.isSame(Calendar.DATE, plan.play_time, overTime)) {
                            ms.overTime = "次日" + DateUtils.formatDate(overTime, "HH:mm");
                        } else {
                            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;
        //用来存参数
        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);
        String fileName = null;
        try {
            if (!ServletFileUpload.isMultipartContent(req)) {
                throw new MyException("请使用正确的表单");
            }
            upload.setFileSizeMax(1024 * 1024 * 3);
            upload.setHeaderEncoding("utf-8");
            List<FileItem> list = upload.parseRequest(req);
            for (FileItem item : list) {
                //普通字段
                if (item.isFormField()) {
                    map.put(item.getFieldName(), item.getString("utf-8"));
                } else {
                    String realName = FileUtils.getFileName(item.getName());
                    if (realName == null || "".equals(realName)) {
                        continue;
                    }
                    fileName = Utils.generateImgFileName(realName);                        
                    File f = new File(uploadPath);
                    if (!f.exists()) {
                        f.mkdirs();
                    }
                    File file = new File(f, fileName);
                    InputStream in = item.getInputStream();
                    PicUtils.resizeByHeight(in, file, 300);
                    IOUtils.close(in);
                    item.delete();
                }
            }
            
            Movie movie = new Movie();
            Utils.populateToBean(movie, map);
            //校验参数有效性
                        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() + "/");
                }
            }
        }
    }
}

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

    private String encoding = null;

    @Override
    public void destroy() {

    public static int compare(Object o1, String s1, Object o2, String s2) {
        if (o2 == null || s2 == null)
            return 1;
        if (o1 == null || s1 == null)
            return -1;
        String s3 = CharacterParser.getSelling(s1);
        String s4 = CharacterParser.getSelling(s2);
        return s3.compareTo(s4);
    }
}

/**
 * 描述:购票
 */
@WebServlet(urlPatterns = "/order")
public class GenerateOrderServlet extends BaseServlet {
    private static final long serialVersionUID = -989924899669241621L;
    private HallService hallService = BaseFactory.getService(HallService.class);
    private PlanService planService = BaseFactory.getService(PlanService.class);
 * 功能: 排片管理
 */
@WebServlet(urlPatterns = {"/admin/plans", "/admin/plans/add", "/admin/plans/cancel"})
public class PlanMgrServlet extends BaseServlet {
    private static final long serialVersionUID = -6874708411049815744L;
    private PlanService planService = BaseFactory.getService(PlanService.class);
    private HallService hallService = BaseFactory.getService(HallService.class);
    private MoviceService moviceService = BaseFactory.getService(MoviceService.class);

    @Override
    protected void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String servletPath = req.getServletPath();
        if (servletPath.contains("cancel")) {//取消排片
            doDel(req, resp);
        } else if (servletPath.contains("add")) {//执行添加
            doAdd(req, resp);
        } else {
            String keyword = req.getParameter("keyword");
            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;
            }                        
                    order.plan_id = plan.id;
                    order.user_id = user.id;
                    Map<String, String[]> map = req.getParameterMap();
                    int count = 0;
                    try {
                        StringBuilder sb = new StringBuilder();
                        for (Map.Entry<String, String[]> entry : map.entrySet()) {
                            String key = entry.getKey();
                            String[] value = entry.getValue();
                            if (key.matches("\\d+_\\d+") && "1".equals(value[0])) {
                                //查询这个座位是否正确
                                String[] rc = key.split("_");
                                if (hall.rows >= Integer.valueOf(rc[0]) && hall.columns >= Integer.valueOf(rc[1])) {  
                                    if (count == 0) {
                                        sb.append("|");
                                    }                 
                                    sb.append(key);
                                    sb.append("|");
                                    count++;
                                } else {
                                    throw new MyException("选座失败,座位号与实际不符,请重新选座。");
                                }
                            }
                        }
                        if (sb.length() == 0) {
                            throw new MyException("请选择座位。");
                        }
                        order.seat = sb.toString();
                        order.amount = Math.floor(plan.price * count * 100) / 100;                        
                    } catch (MyException e) {
                        req.setAttribute("failed", e.getMessage());
                        req.setAttribute("session", session);
                        req.setAttribute("title", String.format("%s(%s)", plan.movie_name, DateUtils.formatDate(plan.play_time, "yyyy-MM-dd HH:mm")));
                        req.getRequestDispatcher("/seat.jsp").forward(req, resp);
                        return;
                    }
                    //选座成功
                    req.setAttribute("order", order);
                    req.setAttribute("session", session);
                    req.setAttribute("title", String.format("%s(%s)", plan.movie_name, DateUtils.formatDate(plan.play_time, "yyyy-MM-dd HH:mm")));
                    req.getRequestDispatcher("/seat.jsp").forward(req, resp);
                    return;
                }
            }
        }
        resp.sendRedirect(req.getContextPath() + "/");
    }
}

            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);
        String fileName = null;
        try {
            if (!ServletFileUpload.isMultipartContent(req)) {
                throw new MyException("请使用正确的表单");
            }
            upload.setFileSizeMax(1024 * 1024 * 3);
            upload.setHeaderEncoding("utf-8");
            List<FileItem> list = upload.parseRequest(req);
            for (FileItem item : list) {
                //普通字段
                if (item.isFormField()) {
                    map.put(item.getFieldName(), item.getString("utf-8"));
                } else {
                    String realName = FileUtils.getFileName(item.getName());
                    if (realName == null || "".equals(realName)) {
                        continue;
                    }
                    fileName = Utils.generateImgFileName(realName);                        
                    File f = new File(uploadPath);
                    if (!f.exists()) {
                        f.mkdirs();
                    }
                    File file = new File(f, fileName);
                    InputStream in = item.getInputStream();
                    PicUtils.resizeByHeight(in, file, 300);
                    IOUtils.close(in);
                    item.delete();
                }
            }
            
            Movie movie = new Movie();
            Utils.populateToBean(movie, map);
            //校验参数有效性
            service.valicateMovie(movie);
            movie.pic_name = fileName;
            if (add) {
                service.addMovie(movie);                
            } else {
        for (Field field : fields) {
            field.setAccessible(true);
            Object obj = params.get(field.getName());
            String[] value = null;
            if (obj instanceof String) {
                value = new String[]{(String) obj};
            } else if (obj instanceof String[]) {
                value = (String[]) obj;
            }
            if (value != null ) {
                Class<?> clazz = field.getType();
                if (clazz == String.class) {
                    field.set(bean, value[0]);
                } else if (clazz == String[].class) {
                    field.set(bean, value);
                } else if (!isEmpty(value[0])) {
                    if (List.class.isAssignableFrom(clazz)) {
                        field.set(bean, new ArrayList<>(Arrays.asList(value)));
                    } else if (clazz == int.class || clazz == Integer.class) {
                        field.set(bean, Integer.valueOf(value[0]));
                    } else if (clazz == long.class || clazz == Long.class) {
                        field.set(bean, Long.valueOf(value[0]));
                    } else if (clazz == short.class || clazz == Short.class) {
                        field.set(bean, Short.valueOf(value[0]));
                    } else if (clazz == float.class || clazz == Float.class) {
                        field.set(bean, Float.valueOf(value[0]));
                    } else if (clazz == double.class || clazz == Double.class) {
                        field.set(bean, Double.valueOf(value[0]));
                    } 
                }
            }
        }
    }

    /**
     * 将提交的参数值赋值给对象
     */
    public static <T> T populateToBean(Class<T> c, Map<String, ?> params) {
        try {
            T bean = c.newInstance();
            populateBean(bean, params);
/**
 * 描述:购票
 */
@WebServlet(urlPatterns = "/order")
public class GenerateOrderServlet extends BaseServlet {
    private static final long serialVersionUID = -989924899669241621L;
    private HallService hallService = BaseFactory.getService(HallService.class);
    private PlanService planService = BaseFactory.getService(PlanService.class);
    private UserService userService = BaseFactory.getService(UserService.class);

    @Override
    protected void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String session = req.getParameter("session");
        if (session != null) {
            //查询排片
            String[] ss = session.split("_");
            Plan plan = planService.query(ss[0], ss[1], ss[2]);
            if (plan != null) {
                //查询影厅
                Hall hall = hallService.queryByName(plan.hall_name);
                if (hall != null) {
                    User user = (User) req.getSession().getAttribute("user");
                    //看数据库是否还有用户信息,可能被删除了
                    if (userService.query(String.valueOf(user.id)) == null) {
                        resp.sendRedirect(req.getContextPath() + "/logout");
                        return;
                    }
                    Order order = new Order();
                    order.movie_name = plan.movie_name;
                    order.plan_id = plan.id;
                    order.user_id = user.id;
                    Map<String, String[]> map = req.getParameterMap();
                    int count = 0;
                    try {
                        StringBuilder sb = new StringBuilder();
                        for (Map.Entry<String, String[]> entry : map.entrySet()) {
                            String key = entry.getKey();
                            String[] value = entry.getValue();
                            if (key.matches("\\d+_\\d+") && "1".equals(value[0])) {
                                //查询这个座位是否正确
                                String[] rc = key.split("_");
                                if (hall.rows >= Integer.valueOf(rc[0]) && hall.columns >= Integer.valueOf(rc[1])) {  
                                    if (count == 0) {
                                        sb.append("|");
                                    }                 
                                    sb.append(key);
                                    sb.append("|");
                                    count++;
                                } else {
        BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g = (Graphics2D) img.getGraphics();

        g.setColor(Color.lightGray);
        g.fillRect(0, 0, width, height);
        g.setColor(Color.BLACK);
        g.drawRect(0, 0, width - 1, height - 1);

        String charTable = "1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 4; i++) {
            Color c = new Color(getRan(155), getRan(155), getRan(155));
            g.setColor(c);
            char ch = charTable.charAt(getRan(charTable.length()));
            sb.append(ch);
            Font font = new Font("粗体", Font.BOLD, 24);
            g.setFont(font);
            double theta = getRan(-45, 45) * Math.PI / 180;
            g.rotate(theta, xoffset + step * i, yoffset);
            g.drawString(ch + "", xoffset + step * i, yoffset);
            g.rotate(-theta, xoffset + step * i, yoffset);
        }

        System.out.println(sb.toString());
        request.getSession().setAttribute("valicateCode", sb.toString());
        g.dispose();
        ImageIO.write(img, "jpg", response.getOutputStream());
    }

    private Random ran = new Random();

    private int getRan(int begin, int end) {
        return ran.nextInt(end - begin) + begin;
    }

    private int getRan(int bound) {
        return ran.nextInt(bound);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

            return false;
        }
        Pattern pattern = Pattern.compile("\\s");
        Matcher matcher = pattern.matcher(password);
        //如果包含空白字符
        if (matcher.find()) {
            return false;
        }
        //只包含一种字符
        return !password.matches("\\d+") && !password.matches("[a-z]+") && !password.matches("[A-Z]+") && !password.matches("\\W+");
    }

    public static void fillAttr(HttpServletRequest req, Map<String, ?> map, String key) {
        Object value = map.get(key);
        String s = null;
        if (value instanceof String) {
            s = (String) value;
        } else if (value instanceof String[]) {
            s = ((String[]) value)[0];
        }
        if (s != null) {
            req.setAttribute(key, s);
        }
    }
    
    public static void fillAttr(HttpServletRequest req, String key, String value) {
        if (value != null) {
            req.setAttribute(key, value);
        }
    }
    
    public static void fillAttr(HttpServletRequest req, Object bean) {
        try {
            Field[] fields = bean.getClass().getDeclaredFields();
            for (Field field : fields) {
                field.setAccessible(true);
                Object value = field.get(bean);
                if (value != null) {
                    req.setAttribute(field.getName(), value);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public static String generateImgFileName(String fileName) {
            User user = (User) req.getSession().getAttribute("user");
            if (movie == null || evaId == null) {
                resp.sendRedirect(req.getContextPath() + "/");
            } else if (!evaId.isEmpty()) {
                //检查提交的是否相符
                Evaluate eva = evaluateService.query(evaId);
                if (eva != null) {
                    String content = req.getParameter("evaluate_content");
                    //截取回复内容里的昵称
                    Pattern pattern = Pattern.compile("\\[回复\\].+\\[/回复\\]");
                    Matcher matcher = pattern.matcher(content);
                    if (matcher.find()) {
                        String temp = matcher.group();
                        String nick = temp.replace("[回复]", "")
                                .replace("[/回复]", "");
                        if (eva.nickname.equals(nick)) {
                            Reply reply = new Reply();
                            reply.username = user.username;
                            reply.nickname = user.nickname;
                            reply.evaluate_id = Integer.valueOf(evaId);
                            reply.time = System.currentTimeMillis();
                            reply.content = content.substring(temp.length()).trim();
                            replyService.add(reply);
                            req.getSession().setAttribute("lookMovie", movie.name);
                            resp.sendRedirect(req.getContextPath() + "/movie/detail");
                        } else {
                            evaluate(req, resp, movieName, movie, user);
                        }
                    } else {
                        evaluate(req, resp, movieName, movie, user);
                    }
                } else {
                    evaluate(req, resp, movieName, movie, user);
                }
            } else {
                evaluate(req, resp, movieName, movie, user);
            }
        }
    }

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值