javaweb实现投票系统

2023-05-16 0 2,116

本文实例大家分享了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项目结构,就是因为比较简单,因此如果有刚刚学习到这里的可以来看看,参考学习

javaweb实现投票系统

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

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

资源下载此资源下载价格为1小猪币,终身VIP免费,请先
由于本站资源来源于互联网,以研究交流为目的,所有仅供大家参考、学习,不存在任何商业目的与商业用途,如资源存在BUG以及其他任何问题,请自行解决,本站不提供技术服务! 由于资源为虚拟可复制性,下载后不予退积分和退款,谢谢您的支持!如遇到失效或错误的下载链接请联系客服QQ:442469558

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 javaweb实现投票系统 http://www.20zxx.cn/705767/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务