这次给大家带来一个课堂基础作业,简单的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{@Overrideprotected 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 {@Overrideprotected 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.执行sqlString 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{@Overrideprotected 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.执行sqlString 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{@Overrideprotected 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.执行sqlString 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. android简单小项目实例_自学(系统学)Python了那么久, 想就业? 几个简单小项目让你通过面试!...

    本人从事Python开发多年,精通爬虫,web,熟悉其他方向,好多小伙伴私聊我说,我看了你的文章后,我学习了,但是对于项目这块还是不是很熟悉,如何快速掌握几个小项目,以及几个可以面试的项目.欢迎大家订 ...

  2. 微信小程序投票系统制作过程详解

    目录 引言: 一.环境准备 二.页面设计 三.数据管理 四.功能实现 五.测试和发布 结语: 引言: 微信小程序是一种快速.便捷的应用开发方式,而投票系统则是小程序开发中常见且有趣的项目之一.在本文中 ...

  3. php一个简单的投票系统_一个简单的PHP投票系统

    一个简单的PHP投票系统 分享到: 作者:转接卡 建立2个表,一个用来显示当前主题,一个存放历史结果. 当前主题表结构:选项(包括主题),票数 历史结果表结构:id,主题名,关点,投票开始时间,投票结 ...

  4. linux系统编程 小项目,linux系统编程小项目.doc

    linux系统编程小项目.doc 一.项目概述简单智能远程监控功能服务器端1.服务器端利用随机数模拟向串口读取传感数据,需要模拟的传感数据要求有温度.湿度.光照.室内噪音度等等.2.服务器要求在数据保 ...

  5. springboot-vue简单小项目搭建

    springboot-vue (前端VUE部分) 简单搭建一个基于springboot+vue的小项目(前端VUE部分) 首先,将整个项目下载下来,然后在项目文件夹里面执行命令: npm instal ...

  6. 【java简单小项目】勇者斗魔王小游戏

    项目的github链接 简要介绍 该项目主要是在控制台实现了回合制的勇者斗魔王的小游戏,涉及到的主要知识为java的类和对象,采用了三层模式设计,可供java初学者学习简单小型项目的架构设计,和具体的 ...

  7. java小项目影院系统

    java小项目,影院管理系统 http://download.csdn.net/detail/github_32658299/9632276 下面是两个关键的类 1.这是电影院测试类,用来读取用户输入 ...

  8. 简单的Web投票系统,通过数据库的内部验证实现防止刷票功能

    需求分析 (1)制作一个投票系统,让学生给自己喜爱的老师投票.该系统由投票界面组成,系统运行,投票界面出现,标题为"欢迎给老师投票":在界面上有一个表格,显示了各位老师的编号.姓名 ...

  9. 基于stm32的简单小项目_适合小白做的创业3个小项目,简单上手

    现在每一位为了能够让自己和家人过上更好地生活,都会不满足于现状的单方面地工作,想要通过创业来改变如今的局面,这种想法也是好的,但是我们需要知道想要创业,并不是那么的容易,需要有一定的技能和管理水平才能 ...

最新文章

  1. 跨网段实现内网互通_【供暖站组网】冠航SD-LAN助力河北石家庄市30个供暖站异地组网实现内网互联互通...
  2. 不可思议的纯 CSS 实现鼠标跟随效果
  3. png文件头_文件上传总结
  4. CSS的子选择器与后代选择器的区别
  5. java操作mongodb(连接池)(转)
  6. which 命令
  7. 惩罚女人的最有效方法!
  8. 如何制作毛玻璃效果?
  9. Redis基础(八)——集群
  10. BZOJ3529: [Sdoi2014]数表(莫比乌斯反演,离线)
  11. 一种虚拟现实技术用计算机,虚拟现实技术有哪几大分类?
  12. MongoDB+MongoVUE安装及入门
  13. 微信公众号开发文档参考
  14. 对面板数据模型中的一些理解
  15. 解决Aid Learning无法联网问题
  16. 润乾报表V4在weblogic下部署找不到授权文件的解决方法
  17. Mac电脑蓝牙连接出问题了,如何重置Mac的蓝牙模块
  18. AndroidStudio输入生日计算星座
  19. POJ1061 青蛙的约会
  20. c51单片机音乐门铃C语言程序,基于51单片机的无线音乐门铃设计

热门文章

  1. 【入门】人见人爱A+B:时间相加
  2. Spring Security 之密码存储
  3. 例3-12:递延年金现值计算
  4. 淮阴工学院C语言考试题库,淮阴工学院C语言题库练习题1.ppt
  5. python3.6手机版_QPy3.6 - Python3.6 for QPython
  6. python 动态导入模块和类
  7. 计算机各专业的就业方向你都了解吗
  8. uniapp之sl-filter下拉筛选
  9. 5GC PDU Session Establishment PDU会话建立流程
  10. 微信订阅号无法使用网页授权解决方案