精华内容
下载资源
问答
  • Javaweb学生管理系统

    2019-05-15 17:20:57
    Javaweb学生管理系统,简单的系统。用于课程设计。数据库已在文件中。
  • javaweb 学生管理系统

    2021-01-12 17:25:52
    实现对学生信息的增删改查,适用于Javaweb课程设计
  • 最简单的javaweb学生管理系统,数据库为mysql,适合交作业
  • JAVAWEB学生管理系统 源码
  • javaweb学生管理系统

    2021-06-09 19:10:01
    javaweb学生管理系统
  • javaWeb 学生管理系统

    2018-08-19 15:24:28
    javaWeb动态学生管理系统,简洁的UI界面,数据库采用mysql.服务器用的Tomcat9.0.
  • JavaWeb学生管理系统

    万次阅读 多人点赞 2019-07-09 15:50:32
    学生成绩管理功能 添加学生功能:姓名、学号、性别、出生年月日。(学号自动生成且唯一) 添加学生成绩功能:每个人都有数学、Java、英语、体育四门课,可分课程输入成绩。 根据学生学号查...

    一、功能展示

    1.登陆页面

       

    2.添加学生

    3.添加成绩

    4.查询成绩

    5.成绩柱状图

    6.修改删除学生信息

    7.成绩报表

    8.导出成绩报表

    二、功能设计

    学生成绩管理功能

    1. 添加学生功能:姓名、学号、性别、出生年月日。(学号自动生成且唯一)
    2. 添加学生成绩功能:每个人都有数学、Java、英语、体育四门课,可分课程输入成绩。
    3. 根据学生学号查找学生成绩功能:在界面上显示姓名、学号和成绩,学号不存在的能给出提示信息。
    4. 根据学生姓名(支持模糊匹配)查找学生成绩功能:并在界面上显示姓名、学号和成绩,如果有多个相同姓名学生存在,一起显示出来,姓名不存在的给出提示信息。
    5. 支持对单个学生各科成绩画出柱状分布图。
    6. 学生信息的修改与删除功能:不能修改学号。
    7. 生成学生学习情况报表功能:报表包含学号、姓名、各科目成绩及对应的该科目班级平均值,总成绩以及班级总成绩平均值,并将该排序结果输出至excel文件

    功能

    JSP+JavaBean+Servlet

    三、功能实现

    数据库设计

    设计三个表一个学生信息表information

    管理员登陆表

    学生成绩表

    项目表

    web.xml(进行Severlet的部署)

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>ManSystem</display-name>
      
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>NumberQueryScoreServlet</servlet-name>
        <servlet-class>jdbc.NumberQueryScoreServlet</servlet-class>
      </servlet>
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>NameQueryScoreServlet</servlet-name>
        <servlet-class>jdbc.NameQueryScoreServlet</servlet-class>
      </servlet>
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>UpdateInformationServlet</servlet-name>
        <servlet-class>jdbc.UpdateInformationServlet</servlet-class>
      </servlet>
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>UpdateChangeInformationServlet</servlet-name>
        <servlet-class>jdbc.UpdateChangeInformationServlet</servlet-class>
      </servlet>
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>BarChartServlet</servlet-name>
        <servlet-class>jdbc.BarChartServlet</servlet-class>
      </servlet>
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>FormServlet</servlet-name>
        <servlet-class>jdbc.FormServlet</servlet-class>
      </servlet>
    
    
    
    
    
    
      <servlet-mapping>
        <servlet-name>NumberQueryScoreServlet</servlet-name>
        <url-pattern>/NumberQueryScoreServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>NameQueryScoreServlet</servlet-name>
        <url-pattern>/NameQueryScoreServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>UpdateInformationServlet</servlet-name>
        <url-pattern>/UpdateInformationServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>UpdateChangeInformationServlet</servlet-name>
        <url-pattern>/UpdateChangeInformationServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>BarChartServlet</servlet-name>
        <url-pattern>/BarChartServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>FormServlet</servlet-name>
        <url-pattern>/FormServlet</url-pattern>
      </servlet-mapping>
      
      
      
      
      
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

     

    学生类StudentBean.java(用来存放学生的信息)

    package jdbc;
    import java.sql.Date;
    public class StudentBean {
    	private int number = 0;
    	private String name=null;
    	private String sex=null;
    	private String birth=null;
    	private int math=0;
    	private int java=0;
    	private int english=0;
    	private int pe=0;
    	private int avg=0;
    	
    	public StudentBean() {}
    	public StudentBean(int number,String name,int math,int java,int english,int pe,int avg) {
    		this.number=number;
    		this.name=name;
    		this.math=math;
    		this.java=java;
    		this.english=english;
    		this.pe=pe;
    		this.avg=avg;
    	}
    	public int getnumber() {return this.number;}
    	public String getname() {return this.name;}
    	public String getsex() {return this.sex;}
    	public String getbirth() {return this.birth;}
    	public int getmath() {return this.math;}
    	public int getjava() {return this.java;}
    	public int getenglish() {return this.english;}
    	public int getpe() {return this.pe;}
    	public int getavg() {return this.avg;}
    	
    	public void setnumber(int number) {this.number=number;}
    	public void setname(String name) {this.name=name;}
    	public void setsex(String sex) {this.sex=sex;}
    	public void setbirth(String birth) {this.birth=birth;}
    	public void setmath(int math) {this.math=math;}
    	public void setjava(int java) {this.java=java;}
    	public void setenglish(int english) {this.english=english;}
    	public void setpe(int pe) {this.pe=pe;}
    	public void setavg(int avg) {this.avg=avg;}
    
    }
    

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    数据库类MysqlBean.java(用来进行数据库连接或者进行数据库操作)

    package jdbc;
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.List;
    
    public class MysqlBean 
    {
    	private String drv = "com.mysql.jdbc.Driver";//数据库驱动程序
    	private String url = "jdbc:mysql://localhost:3306/student";//主机的URL
    	private String usr = "root";//用户名
    	private String pwd = "huang136";//口令
    	private Connection conn = null;//数据库的连接对象
    	private Statement stm = null;//SQL语句的声明对象
    	private ResultSet rs = null;//结果集对象
    
    //为以上定义的7个变量编写getter/setter方法
        public String getDrv() {
    		return drv;
    	}
    	public void setDrv(String drv) {
    		this.drv = drv;
    	}
        public String getUrl() {
    		return url;
    	}
    	public void setUrl(String url) {
    		this.url = url;
    	}
        public String getUsr() {
    		return usr;
    	}
    	public void setUsr(String usr) {
    		this.usr = usr;
    	}
        public String getPwd() {
    		return pwd;
    	}
    	public void setPwd(String pwd) {
    		this.pwd = pwd;
    	}
        public Connection getConn() {
    		return conn;
    	}
    	public void setConn(Connection conn) {
    		this.conn = conn;
    	}
        public Statement getStm() {
    		return stm;
    	}
    	public void setStm(Statement stm) {
    		this.stm = stm;
    	}
    	public ResultSet getRs() {
    		return rs;
    	}
    	public void setRs(ResultSet rs) {
    		this.rs = rs;
    	}
    	
    	public boolean createConn() {//创建数据库连接
    		boolean b = false;
    		try { 
    			Class.forName(drv);
    			conn = DriverManager.getConnection(url, usr, pwd);
    			b = true;
    		} catch (SQLException e) {
    		} catch (ClassNotFoundException e) {
    		} 
    		return b;
    	}
    
    	public boolean update(String sql) {//更新数据库内容的SQL方法
    		boolean b = false;
    		try {	
    			stm = conn.createStatement();
    			stm.execute(sql);
    			b = true;
    		} catch (Exception e) {System.out.println(e.toString());  }
    		return b;
    	}
    	
    	public void query(String sql) {  //查询数据库内容的SQL方法
    		try {	
    			stm = conn.createStatement();
    			rs = stm.executeQuery(sql);
    		} catch (Exception e) {	}
    	}
    
    	public boolean next() {//移到下条记录的方法
    		boolean b = false;
    		try { 	
    			if(rs.next())  
    			b = true;
    		} catch (Exception e) {	}
    		return b;		
    	}
    
    	public String getValueString(String field) {//取得当前记录的字段field的值
    		String value = null;
    		try {
    			if(rs!=null)
    				value = rs.getString(field);
    			} catch (Exception e) {	}
    		return value;
    	}
    	public int getValueInt(String field) {//取得当前记录的字段field的值
    		int value = 0;
    		try {
    			if(rs!=null)
    				value = rs.getInt(field);
    			} catch (Exception e) {	}
    		return value;
    	}
    	public Date getValueDate(String field) {//取得当前记录的字段field的值
    		Date value = null;
    		try {
    			if(rs!=null)
    				value = rs.getDate(field);
    			} catch (Exception e) {	}
    		return value;
    	}
    	
    	
    	
    	
    	
    	
    	public List<StudentBean> getValueScore(int number) {//取得当前记录的字段field的值
    		List<StudentBean> studentbeanlist=new ArrayList<StudentBean>();
    		try {
    			String sql="select * from score where number like '%"+number+"%'";	
    			stm = conn.createStatement();
    			rs = stm.executeQuery(sql);
    			while(rs.next())
    			{
    				StudentBean studentbean=new StudentBean();
    				
    				System.out.println(rs.getString("name"));
    				
    				studentbean.setnumber(rs.getInt("number"));
    				studentbean.setname(rs.getString("name"));
    				studentbean.setmath(rs.getInt("math"));
    				studentbean.setjava(rs.getInt("java"));
    				studentbean.setenglish(rs.getInt("math"));
    				studentbean.setpe(rs.getInt("pe"));
    				studentbeanlist.add(studentbean);
    			}
    		} catch (Exception e) {	}
    		return studentbeanlist;
    	}
    	public List<StudentBean> getNameScore(String name) {//取得当前记录的字段field的值
    		List<StudentBean> studentbeanlist=new ArrayList<StudentBean>();
    		try {
    			String sql="select * from score where name like '%"+name+"%'";	
    			stm = conn.createStatement();
    			rs = stm.executeQuery(sql);
    			while(rs.next())
    			{
    				StudentBean studentbean=new StudentBean();
    				
    				System.out.println(rs.getString("name"));
    				
    				studentbean.setnumber(rs.getInt("number"));
    				studentbean.setname(rs.getString("name"));
    				studentbean.setmath(rs.getInt("math"));
    				studentbean.setjava(rs.getInt("java"));
    				studentbean.setenglish(rs.getInt("math"));
    				studentbean.setpe(rs.getInt("pe"));
    				studentbeanlist.add(studentbean);
    			}
    		} catch (Exception e) {	}
    		return studentbeanlist;
    	}
    	
    
    //关闭与数据库连接相关的三个对象
    	public void closeConn() { 
    		try {	if (conn != null)	conn.close();
    		} catch (SQLException e) {	}
    	}
    
    	public void closeStm() {
    		try {	if (stm != null)	stm.close();
    		} catch (SQLException e) {	}
    	}
    
    	public void closeRs() {
    		try {	if (rs != null)	    rs.close();
    		} catch (SQLException e) {}
    	}
    }
    

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    登陆界面设计

    登陆界面 login.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>学生成绩管理系统</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="../css/login.css">
    </head>
    <body>
    
    	<div class="title">
    		<p>欢迎登录学生成绩管理系统</p>
    	</div>
    	<div id="index">
    		<form action="../controller/login_control.jsp" method="post">
    			<p>
    				账号<input name="userid" type="text" /><br>
    			</p>
    			<p>
    				密码<input name="password" type="password"/> 
    			<p>				
    				<input name="user" type="radio" value="student" checked>学生 
    				<input name="user" type="radio" value="administrator">管理员<br>
    			</p>
    			<p>
    				<input id="btn_login" type="submit" >
    			</p>			
    			</form>
    </body>
    </html>
    

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    login.css

    @charset "UTF-8";
    
    body{
    	background:url(/ManSystem/img/3.jpg) no-repeat;
    	background-size:100% 100%;
    	width:100%;
    	height:100%;  
    }
    .title{
    	width:100%;
    	height:auto;
    	background:#003b90;
    	font-size:30px;
    	text-align:center;
    }
    .title p{
    	color: #fff;
    }
    body{
    	background-color: white;
    	text-algin:center;
    }
    
    #index{
    	text-align:center;
    	background-color:;
    	margin:200px 0 0 41%;	
    	width: 400px;
        height: 260px;
        padding: 13px;
        position: absolute;
        left: 50%;
        top: 50%;
        margin-left: -200px;
        margin-top: -300px;
        background-color: rgba(240, 255, 255, 0.5); 
        border-radius: 10px;
    }
    #btn_login {	
        font-size: 20px;
        width: 120px;
        height: 28px;
        line-height: 28px;
        text-align: center;
        color: white;
        background-color: #003b90;
        border-radius: 6px;
        border: 0;
    }
    

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    login_controller.jsp

    <%@ page import="jdbc.LoginBean" %>
    <%@ page import="jdbc.MysqlBean" %>
    <%
    	String userid=request.getParameter("userid");
    	String password=request.getParameter("password");
    	
    	if(userid==""||password==""){
    		response.sendRedirect("../view/login.jsp");
    	}else{
    		LoginBean loginbean=new LoginBean();
    		boolean isvalid = loginbean.valid(userid,password);
    		out.print(isvalid);
    
    		if(isvalid){
    			session.setAttribute("userid",userid);
    			response.sendRedirect("../view/menu.jsp");
    		}else{
    			response.sendRedirect("../view/login.jsp");			
    		}
    	}
     %>
    

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    LoginBean.java

    package jdbc;
    import java.sql.*;
    
    public class LoginBean {
    	public boolean valid(String userid,String password){
    		boolean isvalid =false;
    		MysqlBean db =new MysqlBean();
    		if(db.createConn()) {
    			String sql="select * from login where userid='"+userid+"'and password='"+password+"'";
    			db.query(sql);
    			if(db.next()){
    				isvalid=true;
    				}
    				db.closeRs();
    				db.closeStm();
    				db.closeConn();
    			}
    		return isvalid;	
    	}
    }
    

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    3.成绩报表
    form.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>成绩报表</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="/ManSystem/css/nav.css">
    <link rel="stylesheet" type="text/css" href="/ManSystem/css/form.css">
    </head>
    <body>
    	<div class="title">
    		<p>成绩报表</p>
    	</div>
    	<div class="nav">
    		<ul>
    			<li><a href="/ManSystem/view/menu.jsp">首页</a></li>
    			<li><a href="/ManSystem/view/addstudent.jsp">添加学生</a></li>
    			<li><a href="/ManSystem/view/addscore.jsp">添加成绩</a></li>
    			<li><a href="/ManSystem/view/queryscore.jsp">查询成绩</a></li>
    			<li><a href="/ManSystem/view/barchart.jsp">成绩柱状图</a></li>
    			<li><a href="/ManSystem/view/update.jsp">修改删除</a></li>
    			<li><a href="/ManSystem/view/form.jsp">成绩报表</a></li>
    		</ul>
    	</div>
    	<form action="/ManSystem/FormServlet" method="post">
    		<input type="submit" value="查找">
    	</form>
    	<div class="container"> 
    	<table id="backViewTable" class="table table-hover table-sm table2excel" border="1">
    		 <button class="btn btn-primary btn-sm" onclick="tablesToExcel(['backViewTable'], ['ProductDay1'], 'TestBook.xls', 'Excel')">Export to Excel</button>
    			<tr>
    				<th>学 号</th>
    				<th>姓 名</th>
    				<th>性 别</th>
    				<th>出 生</th>
    				<th>MATH</th>
    				<th>JAVA</th>
    				<th>ENGLISH</th>
    				<th>PE</th>
    				<th>平均分</th>
    			</tr>
    			<script type="text/javascript">var flag=1;</script>
    			<c:forEach var="U" items="${studentbeanlist}">
    				<tr>
    					<td>${U.number}</td>
    					<td>${U.name}</td>
    					<td>${U.sex}</td>
    					<td>${U.birth}</td>
    					<td>${U.math}</td>
    					<td>${U.java}</td>
    					<td>${U.english}</td>
    					<td>${U.pe}</td>
    					<td>${U.avg}</td>
    				</tr>
    			</c:forEach>
    			<tr>
    				<td>平 均 分</td>
    				<td></td>
    				<td></td>
    				<td></td>
    				<td>${avg_math}</td>
    				<td>${avg_java}</td>
    				<td>${avg_english}</td>
    				<td>${avg_pe}</td>
    				<td>${avg_all}</td>
    			</tr>
    		</table>
    		       
    
    	</div>
    </body>
    
    <script>
        var tablesToExcel = (function() {
            var uri = 'data:application/vnd.ms-excel;base64,'
                , tmplWorkbookXML = '<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">'
                + '<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"><Author>Axel Richter</Author><Created>{created}</Created></DocumentProperties>'
                + '<Styles>'
                + '<Style ss:ID="Currency"><NumberFormat ss:Format="Currency"></NumberFormat></Style>'
                + '<Style ss:ID="Date"><NumberFormat ss:Format="Medium Date"></NumberFormat></Style>'
                + '</Styles>'
                + '{worksheets}</Workbook>'
                , tmplWorksheetXML = '<Worksheet ss:Name="{nameWS}"><Table>{rows}</Table></Worksheet>'
                , tmplCellXML = '<Cell{attributeStyleID}{attributeFormula}><Data ss:Type="{nameType}">{data}</Data></Cell>'
                , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
                , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
            return function(tables, wsnames, wbname, appname) {
                var ctx = "";
                var workbookXML = "";
                var worksheetsXML = "";
                var rowsXML = "";
    
                for (var i = 0; i < tables.length; i++) {
                    if (!tables[i].nodeType) tables[i] = document.getElementById(tables[i]);
    
    //              控制要导出的行数
                    for (var j = 0; j < tables[i].rows.length; j++) {
                        rowsXML += '<Row>';
    
    //                    控制导出的列数(在本例中,最后一列为button,导出的文件会出错,所以导出到倒数第二列
                        for (var k = 0; k < tables[i].rows[j].cells.length-1; k++) {
                            var dataType = tables[i].rows[j].cells[k].getAttribute("data-type");
                            var dataStyle = tables[i].rows[j].cells[k].getAttribute("data-style");
                            var dataValue = tables[i].rows[j].cells[k].getAttribute("data-value");
                            dataValue = (dataValue)?dataValue:tables[i].rows[j].cells[k].innerHTML;
                            var dataFormula = tables[i].rows[j].cells[k].getAttribute("data-formula");
                            dataFormula = (dataFormula)?dataFormula:(appname=='Calc' && dataType=='DateTime')?dataValue:null;
                            ctx = {  attributeStyleID: (dataStyle=='Currency' || dataStyle=='Date')?' ss:StyleID="'+dataStyle+'"':''
                                , nameType: (dataType=='Number' || dataType=='DateTime' || dataType=='Boolean' || dataType=='Error')?dataType:'String'
                                , data: (dataFormula)?'':dataValue
                                , attributeFormula: (dataFormula)?' ss:Formula="'+dataFormula+'"':''
                            };
                            rowsXML += format(tmplCellXML, ctx);
                        }
                        rowsXML += '</Row>'
                    }
                    ctx = {rows: rowsXML, nameWS: wsnames[i] || 'Sheet' + i};
                    worksheetsXML += format(tmplWorksheetXML, ctx);
                    rowsXML = "";
                }
    
                ctx = {created: (new Date()).getTime(), worksheets: worksheetsXML};
                workbookXML = format(tmplWorkbookXML, ctx);
    
    //          查看后台的打印输出
                console.log(workbookXML);
    
                var link = document.createElement("A");
                link.href = uri + base64(workbookXML);
                link.download = wbname || 'Workbook.xls';
                link.target = '_blank';
                document.body.appendChild(link);
                link.click();
                document.body.removeChild(link);
            }
        })();
        </script>
    
    </html>
    

    form.css

    @charset "UTF-8";
    
    body{
    	background:url(/ManSystem/img/3.jpg) no-repeat;
    	background-size:100% 100%;
    	width:100%;
    	height:100%;  
    }
    .container{
    	
    	
    	background-color: rgba(240, 255, 255, 0.5); 
        border-radius: 10px;
        width: 700px;
        height: auto;
     
    }
    #backViewTable{
    		border-spacing: 0;
    }

    FormServlet.java

    package jdbc;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class FormServlet extends HttpServlet {
    
    	/**
    		 * Constructor of the object.
    		 */
    	public FormServlet() {
    		super();
    	}
    
    	/**
    		 * Destruction of the servlet. <br>
    		 */
    	public void destroy() {
    		super.destroy(); // Just puts "destroy" string in log
    		// Put your code here
    	}
    
    	/**
    		 * The doGet method of the servlet. <br>
    		 *
    		 * This method is called when a form has its tag value method equals to get.
    		 * 
    		 * @param request the request send by the client to the server
    		 * @param response the response send by the server to the client
    		 * @throws ServletException if an error occurred
    		 * @throws IOException if an error occurred
    		 */
    	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    		response.setContentType("text/html");
    		PrintWriter out = response.getWriter();
    		out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
    		out.println("<HTML>");
    		out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
    		out.println("  <BODY>");
    		out.print("    This is ");
    		out.print(this.getClass());
    		out.println(", using the GET method");
    		out.println("  </BODY>");
    		out.println("</HTML>");
    		out.flush();
    		out.close();
    	}
    
    	/**
    		 * The doPost method of the servlet. <br>
    		 *
    		 * This method is called when a form has its tag value method equals to post.
    		 * 
    		 * @param request the request send by the client to the server
    		 * @param response the response send by the server to the client
    		 * @throws ServletException if an error occurred
    		 * @throws IOException if an error occurred
    		 */
    	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		FormBean form=new FormBean();
    		List<StudentBean> studentbeanlist=new ArrayList<StudentBean>();			
    		studentbeanlist = form.getForm();			
    		if(studentbeanlist!=null){
    			request.getSession().setAttribute("studentbeanlist", studentbeanlist);
    			request.getSession().setAttribute("avg_math", form.getavg_math());
    			request.getSession().setAttribute("avg_java", form.getavg_java());
    			request.getSession().setAttribute("avg_english", form.getavg_english());
    			request.getSession().setAttribute("avg_pe", form.getavg_pe());
    			request.getSession().setAttribute("avg_all", form.getavg_all());
    			RequestDispatcher view = request.getRequestDispatcher("view/form.jsp");
    			view.forward(request, response);				
    		}else{
    			RequestDispatcher view = request.getRequestDispatcher("/view/menu.jsp");
    			view.forward(request, response);
    		}
    	}
    
    	/**
    		 * Initialization of the servlet. <br>
    		 *
    		 * @throws ServletException if an error occurs
    		 */
    	public void init() throws ServletException {
    		// Put your code here
    	}
    
    }
    

    四、源代码

    https://github.com/MarineKings/JavaWeb/tree/master/ManSystem

    展开全文
  • 就是一个简单的学生信息的增删改查,适合初学者和应付课程报告。 前端是JSP,后端是Servlet,DAO层用的dbutils库,数据库是MySQL。
  • 本系统采用eclipse开发,数数据库采用my sql2008,使用Navicat可视化软件编辑,tomcat9作为服务器,文件中包含课程设计文档,学生信息管理系统压缩包,数据库文件ssms,以及my sql+Navicat包,将数据库通过Navicat...
  • 总的来说整个项目通过Maven来管理jar包,实现了学生信息管理系统的登录,增删改查等基本操作,然后不喜写css样式,页面有点丑,但是代码中的逻辑基本正确。
  • 基于jsp + servlet +Mysql 写的关于学生信息管理的后端系统,实现后端对学生管理员、老师、课程信息的数据库增删改查操作。
  • javaweb学生成绩管理系统 jsp+servlet+easyUI+MySQL+c3p0 相关截图放在项目文档下,数据库和系统分析文档放在doc目录下项目较简单,适合初学或在校学生学习,项目采用eclipse开发,jdk7或者8,tomcat7或8
  • 本项目是一套基于JavaWeb实现的学生管理系统 或 学生成绩管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。 包含:项目源码、项目文档、数据库脚本、软件工具等,该项目附带全部...
  • 运行工具:eclipse2017+MySQL。实现学生管理的基本操作。主要是后台服务器,前端设计较少。
  • 本项目资源包括: 一、设计文档 1、功能结构 2、项目架构 3、包及Java类说明 4、数据库设计 二、功能实现 1、登陆 2、系统主界面 3、添加学生信息 4、学生信息维护 5、根据学号查找学生 6、更新学生信息 7、删除学生...
  • 3. 增加学生信息界面:增加信息数据 4. 查找学生信息界面 (1) 根据学号查找:返回学生信息 (2) 查找全部: 返回学生信息 5. 修改学生信息界面:修改信息数据 6. 删除学生信息界面:删除信息数据 关注微信公众号:让...
  • 这是一个数据库的课程设计作业,是基于javaweb的一个学生成绩管理系统,里面涵盖的数据库的增删改查等等操作,前端为了美观用的是bootstrap框架。
  • 项目所用技术:Jsp/Servlet +JDBC+Oracle/SqlServer+Jquery,内附Sql...主要包括以下部分:登陆、系统主界面、添加学生信息、学生信息维护、根据学号查找学生、更新学生信息、删除学生信息、更改管理员密码、退出系统
  • eclipse&MySQL8.0&Tomcat8.5
  • Javaweb学生管理系统期末设计

    万次阅读 多人点赞 2019-06-14 21:18:11
    学生管理-描述文档 有需要参考的可以进入,项目下载地址。 一:功能描述 该项目实现了以下功能:  页面包括展示信息和管理信息两部分,并且实现了图片验证登录  通过连接数据库并执行SQL语句实现对数据库的增、...

    学生管理-描述文档

    有需要参考的可以进入,项目下载地址
    一:功能描述
    该项目实现了以下功能:
     页面包括展示信息和管理信息两部分,并且实现了图片验证登录
     通过连接数据库并执行SQL语句实现对数据库的增、删、查、改
     使用DBUtils数据库工具(QueryRunner)
     页面基本美观且合理
     设置了过滤器解决乱码问题,并实现了退出返回主页
    下面是部分截图:
    1.主页
    在这里插入图片描述
    2.登录界面
    在这里插入图片描述
    3.登录成功
    登陆时调用登录doLogin,该Servlet完成相应的逻辑操作(判断用户名、密码、验证码是否为空)、并且调用相应的BaseDao数据库访问层的相应组件,完成登陆校验,然后将结果返回给视图层 ,视图层提供给用户,以界面的形式展示。
    在这里插入图片描述
    4.修改
    在这里插入图片描述
    5.查看
    在这里插入图片描述
    6.添加
    在这里插入图片描述
    7.删除
    在这里插入图片描述
    二:实现方法
    ①实现该项目涉及的知识有:
    HTML,CSS,JavaScript,MySQL数据库,JSP指令,JSP对象,JavaBean,JDBC,EL和JSTL,Servlet,Filter过滤器等最基本的知识。使用了JavaBean+JSP+Servlet开发模型,就是Model+View+Controller,即MVC设计模式。
    在这里插入图片描述
    ②主要的思想和方法
    • 继承HTTPServlet父类重写 doGet() 和doPost()方法
    • 使用request.getParameter(String str); 获取前台(页面)的数据(获取参数)
    • 给前台页面设置值用:request.setAttribute(String args, Object obj);
    • Jsp重定向,使用的是HttpServletResponese对象中response.sendRedirect(Sting location)方法。是一个响应对象的方法,调用这个方法,表明整个请求已经结束。
    • 请求转发,是javax.servlet.RequestDispatcher接口的forward(“”)方法来实现的。
    ③设计流程:
    Servlet -> Service(业务类) -> DAO -> database
    当浏览器提交请求到 Tomcat Web 服务器的时候,对应的 Servlet 的doGet/doPost 方法会被调用,接着在 Servlet 中调用 Service类,然后在 Service 类中调用DAO类,最后在 DAO 中访问数据库获取相应的数据。
    在这里插入图片描述
    **④实现该项目我所做的基本步骤:**需求分析,软件设计,编码及实现,美化以及完善。
    首先需要搭建数据库,实现学生和老师实体类,这里不做具体描述。
    1.数据库操作的基类BaseDao,实现连接、查询、释放资源,下面是部分代码:

    try {
    			Class.forName("com.mysql.jdbc.Driver");
    			String url = "jdbc:mysql://localhost:3306/Student";
    			String username = "root";
    	    	String password = "123";
    connection = DriverManager.getConnection(url, username, password);
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    			return false;
    		} catch (SQLException e) {
    			e.printStackTrace();
    			return false;
    		}
    

    2.定义学生操作的接口StudentDao,下面是部分代码:

    public interface StudentDao {
    	//获取所有学生信息
    	public List<Student> getAllStudent();
    	//获取指定学生信息
    	public Student getStudentMoreInfo(Student student);
    	//添加学生
    	public int addStudent(Student student);
    	//删除学生
    	public int delStudent(Student student);
    	//修改学生信息
    	public int modifyStudent(Student student);
    }
    

    3.实现接口StudentDao,获取所有学生信息部分代码:

    List<Student> list = new ArrayList<Student>();
    		String sql = "select `id`,`name`,`gradeId`,`age`,`sex`,`profile` from student ";
    		Object[] params = {};
    		ResultSet rs = this.executeQuerySQL(sql, params);
    		try {
    			while (rs.next()) {
    				Student stu = new Student();
    				stu.setId(rs.getInt("id"));
    				stu.setAge(rs.getInt("age"));
    				stu.setGradeId(rs.getInt("gradeId"));
    				stu.setSex(rs.getString("sex"));
    				stu.setName(rs.getString("name"));
    				stu.setProfile(rs.getString("profile"));
    				list.add(stu);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    

    下图为查询方法以及步骤:
    在这里插入图片描述
    4. 实现接口StudentDao,获取指定学生信息部分代码:

    Student stu = new Student();
    String sql = "select `name`,`gradeId`,`age`,`sex`,`profile` from student where `id`=?";
    Object[] params = { student.getId() };
    ResultSet rs = this.executeQuerySQL(sql, params);
    try {
    	while (rs.next()) {
    		stu.setAge(rs.getInt("age"));
    		stu.setGradeId(rs.getInt("gradeId"));
    		stu.setSex(rs.getString("sex"));
    		stu.setName(rs.getString("name"));
    		stu.setProfile(rs.getString("profile"));
    	}
    } catch (SQLException e) {
    	e.printStackTrace();
    }
    

    5 实现接口StudentDao,添加学生部分代码:

    int row = 0;
    		String sql = "insert into student(`id`,`name`,`age`,`sex`,`gradeId`,`profile`) values(?,?,?,?,?,?)";
    		Object[] params = {student.getId(),student.getName(),student.getAge(),student.getSex(),student.getGradeId(),student.getProfile()};
    		row = this.executeUpdateSQL(sql, params);
    		if(row>0){
    			System.out.println("增加学生成功");
    		}else{
    			System.out.println("增加学生失败");
    		}
    		return row;
    

    删除学生和添加学生操作类似,这里不再做具体描述。
    6. 下面是处理登录的Servlet,用来处理登录请求,部分代码如下:

    	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String userName = request.getParameter("username");
    		String password = request.getParameter("password");
    		String checkCode = request.getParameter("check_code");
    		String savedCode = (String) request.getSession().getAttribute(
    				"check_code");
    if(userName!=null && !userName.equals("")&& checkCode.equals(savedCode)){
    			UserService uerService = new UserServiceimp();
    			User user = new User();
    			user.setUsername(userName);
    			user.setPassword(password);
    			if(uerService.findUser(user)){//存在这个用户,可以正常访问学生信息
    				request.getSession().setAttribute("user", user);
    				response.sendRedirect("/Student/pages/stuList.jsp");
    }else {//不存在这个用户,给出提示,转回登录页面
    				String message = "用户名或密码错误";
    				request.getSession().setAttribute("msg", message);
    				response.sendRedirect("/Student/login.jsp");
    			}
    		}else {
    			//判断验证码是否正确
    			String message = "验证码输入错误!!!";
    			request.getSession().setAttribute("msg", message);
    			response.sendRedirect("/Student/login.jsp");
    		}
    			}
    
    1. 下面是addStudent Servlet类实现添加学生到数据库的部分代码,其他不做详细描述:

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

       	String name = request.getParameter("stuName");
       	String sex = request.getParameter("sex");
       	int age = Integer.parseInt(request.getParameter("stuAge"));
       	String gradeName = request.getParameter("stuGrade");
       	String profile = request.getParameter("showProfile");
       	
       	
       	GradeService gService = new GradeServiceimp();
       	Grade grade = gService.getGrade(gradeName);
       	
       	Student stu = new Student();
       	stu.setName(name);
       	stu.setAge(age);
       	stu.setSex(sex);
       	stu.setProfile(profile);
       	stu.setGradeId(grade.getGradeId());
       	
       	StudentService studentService = new StudentServiceimp();
       		
       		String opr = request.getParameter("opr");//根据传的opr参数决定是添加学生还是修改学生信息
       		int n = 0;
       		if(opr.equals("addStu")){ //添加
       			n = studentService.addStudent(stu);
       		}else if(opr.equals("modifyStu")){//修改
       			int id = Integer.parseInt(request.getParameter("stuId"));
       			stu.setId(id);
       			n = studentService.modifyStudent(stu);
       		}			
       		if(n>0){
       			response.sendRedirect("/Student/pages/stuList.jsp");
       		}else{
       			response.sendRedirect("/Student/pages/addStu.jsp");
       		}
       	}
      

    此外,jsp中使用了css来统一控制样式,用JavaScript在本地处理一些简单的判断,例如:

    <script type="text/javascript">
    	function validate_form() {
    		var name = document.getElementById("username").value;
    		var password = document.getElementById("password").value;
    		if (name == null || name == "") {
    			alert("姓名不能为空");
    			return false;
    		}
    		if (password == null || password == "") {
    			alert("密码不能为空");
    			return false;
    		}
    		return true;
    	}
    

    三、项目小结
    总的来说从这个实验中我学到了不少的东西,比如如何将web的MVC设计模式付诸于现实等等,并且我还将这学期学的专业核心课《软件工程》运用到了这个项目,非常的开心。虽然有很多问题都不是很会,通过查阅资料或者看了课本后,我还是大概知道了,我学会了独立解决问题的能力,遇到的问题主要是如何实现对数据库增、删、查、改,通过对书上的例子以及网上查阅资料,最后还是大概懂了,我深知自己还有很多不足的地方,路漫漫其修远兮,吾将上下而求索。我从这个项目中学到的还有很多,非常的充实。

    展开全文
  • Javaweb学生作业管理系统,实现对作业的基本增删改查管理。 主要为:Java源码+MySQL数据库+搭建教程。
  • 学生成绩管理系统(SSMS),涉及到学生、教师、系统管理员、班级、学生成绩、课程。设置一个系统管理员对系统进行管理。该系统分为三大类:管理员、学生、教师。该项目是基于javaweb进行开发,很适合刚学完javaweb的...
  • JavaWeb学生管理系统(1)

    千次阅读 2020-07-13 00:55:23
    charset=UTF-8" language="java" %> 学生列表 学生列表 添加学生 删除选中 学号 姓名 班级 专业 性别 年龄 操作 111 张三 1 计算机 男 23 修改 删除 222 李四 2 金融 女 24 修改 删除 333 王五 3 哲学 男 22 修改 ...

    这个是我的大作业,所以有些bug也无所谓。无伤大雅

    需要知识:Java、SQL、HTML、CSS、JavaScript、JSP。

    IDE用的是IDEA,数据库用的是MySQL,数据库连接池用的是阿里的Druid(可以选择不使用),前段开发框架是Bootstrap。

    采用三层架构,即表现层(web层)、业务逻辑层(service层)、数据访问层(DAO层)

    首先是创建工程,选择JavaEE,勾选Web Application,可以保留web.xml,也可以不保留,取决于Servlet声明方式(注解还是写进web.xml)。

    然后是导包,在WEB-INF文件夹下创建lib文件夹,导入druid相关jar包、连接mysql数据库的相关jar包、jstl相关jar包。

    具体如下:

    然后将Bootstrap的css文件夹、js文件夹以及fonts文件夹复制至web目录。

    接下来是确定数据库中有哪些表

    admin表

    usernamevarchar(20)主键用户名
    passwordvacharr(20)not null密码

     

    SQL语句如下:

    CREATE TABLE `student_course_project`.`admin`  (
      `username` varchar(20) NOT NULL COMMENT '用户名',
      `password` varchar(20) NULL COMMENT '密码',
      PRIMARY KEY (`username`)
    );

    student表

    studentnoint主键学号
    namevarchar(20)姓名
    classnovarchar(20)

    班级

    majorvarchar(20)专业
    genderint

    性别

    1:男,2:女

    ageint年龄

     

    表名为student,有6个字段,其中gender只包含“男”、“女”,故使用int类型。

    SQL语句如下:

    CREATE TABLE `student_course_project`.`student`  (
      `studentno` int NOT NULL COMMENT '学号',
      `name` varchar(20) NULL COMMENT '姓名',
      `classno` varchar(20) NULL COMMENT '班级',
      `major` varchar(20) NULL COMMENT '专业',
      `gender` int NULL COMMENT '性别',
      `age` int NULL COMMENT '年龄',
      PRIMARY KEY (`studentno`)
    );

    然后是编写前端界面,登录、学生列表、添加学生、修改信息。

     

    可以看出以上信息界面均为“死信息”,未从数据库中读取信息,从上至下的代码如下:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>登录</title>
    
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <script src="js/jquery-3.5.1.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
    
        <style>
            .center-in-center {
                position: absolute;
                top: 50%;
                left: 50%;
                -webkit-transform: translate(-50%, -50%);
                -moz-transform: translate(-50%, -50%);
                -ms-transform: translate(-50%, -50%);
                -o-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);
            }
        </style>
    </head>
    <body>
    <div style="width: 30%" class="center-in-center">
        <form class="form-horizontal">
            <div class="form-group">
                <label for="username" class="col-sm-4 control-label">用户名:</label>
                <div class="col-sm-8">
                    <input type="text" class="form-control" id="username" name="username" placeholder="请输入用户名">
                </div>
            </div>
            <div class="form-group">
                <label for="password" class="col-sm-4 control-label">密 码:</label>
                <div class="col-sm-8">
                    <input type="password" class="form-control" id="password" name="password" placeholder="请输入密码">
                </div>
            </div>
            <div class="form-group">
                <div style="text-align: center">
                    <button type="submit" class="btn btn-primary">登录</button>
                    <button type="reset" class="btn btn-info">重置</button>
                    <button type="button" class="btn btn-warning">注册</button>
                </div>
            </div>
        </form>
    </div>
    </body>
    </html>
    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>学生列表</title>
    
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <script src="js/jquery-3.5.1.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
    
        <style>
            th,td{
                text-align: center;
            }
            th{
                background-color: #5cb85c;
            }
        </style>
    
    </head>
    <body>
    <div style="width: 60%;margin: 20px auto">
        <h1 style="text-align: center;margin: 10px">学生列表</h1>
        <div style="float: right;margin: 5px">
            <button type="button" class="btn btn-primary">添加学生</button>
            <button type="button" class="btn btn-primary">删除选中</button>
        </div>
        <table class="table table-bordered table-striped table-hover">
            <tr>
                <th><input type="checkbox"></th>
                <th>学号</th>
                <th>姓名</th>
                <th>班级</th>
                <th>专业</th>
                <th>性别</th>
                <th>年龄</th>
                <th>操作</th>
            </tr>
    
            <tr>
                <td><input type="checkbox"></td>
                <td>111</td>
                <td>张三</td>
                <td>1</td>
                <td>计算机</td>
                <td>男</td>
                <td>23</td>
                <td>
                    <button class="btn btn-success">修改</button>
                    <button class="btn btn-danger">删除</button>
                </td>
            </tr>
    
            <tr>
                <td><input type="checkbox"></td>
                <td>222</td>
                <td>李四</td>
                <td>2</td>
                <td>金融</td>
                <td>女</td>
                <td>24</td>
                <td>
                    <button class="btn btn-success">修改</button>
                    <button class="btn btn-danger">删除</button>
                </td>
            </tr>
    
            <tr>
                <td><input type="checkbox"></td>
                <td>333</td>
                <td>王五</td>
                <td>3</td>
                <td>哲学</td>
                <td>男</td>
                <td>22</td>
                <td>
                    <button class="btn btn-success">修改</button>
                    <button class="btn btn-danger">删除</button>
                </td>
            </tr>
        </table>
    
        <nav aria-label="Page navigation">
            <ul class="pagination">
                <li>
                    <a href="#" aria-label="Previous">
                        <span aria-hidden="true">&laquo;</span>
                    </a>
                </li>
                <li><a href="#">1</a></li>
                <li><a href="#">2</a></li>
                <li class="active"><a href="#">3</a></li>
                <li><a href="#">4</a></li>
                <li><a href="#">5</a></li>
                <li>
                    <a href="#" aria-label="Next">
                        <span aria-hidden="true">&raquo;</span>
                    </a>
                </li>
            </ul>
        </nav>
        <h3>共20名学生,共4页</h3>
    </div>
    </body>
    </html>
    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>添加学生</title>
    
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <script src="js/jquery-3.5.1.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
    
    </head>
    <body>
    <div style="width: 30%;margin: 20px auto">
        <h1 style="text-align: center;margin: 10px">添加学生</h1>
        <form class="form-horizontal">
            <div class="form-group">
                <label for="studentno" class="col-sm-2 control-label">学号:</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" id="studentno" name="studentno" placeholder="请输入学号">
                </div>
            </div>
            <div class="form-group">
                <label for="name" class="col-sm-2 control-label">姓名:</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" id="name" name="name" placeholder="请输入姓名">
                </div>
            </div>
            <div class="form-group">
                <label for="class" class="col-sm-2 control-label">班级:</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" id="class" name="class" placeholder="请输入班级">
                </div>
            </div>
            <div class="form-group">
                <label for="major" class="col-sm-2 control-label">专业:</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" id="major" name="major" placeholder="请输入专业">
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-2 control-label">性别:</label>
                <div class="col-sm-10">
                    <label class="radio-inline">
                        <input type="radio" name="gender" value="男"> 男
                    </label>
                    <label class="radio-inline">
                        <input type="radio" name="gender" value="女"> 女
                    </label>
                </div>
            </div>
            <div class="form-group">
                <label for="age" class="col-sm-2 control-label">年龄:</label>
                <div class="col-sm-10">
                    <input type="number" class="form-control" id="age" name="age" placeholder="请输入年龄">
                </div>
            </div>
    
            <div class="form-group">
                <div style="text-align: center">
                    <button type="submit" class="btn btn-primary">添加</button>
                    <button type="reset" class="btn btn-info">重置</button>
                </div>
            </div>
        </form>
    </div>
    </body>
    </html>
    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>修改信息</title>
    
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <script src="js/jquery-3.5.1.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
    
    </head>
    <body>
    <div style="width: 30%;margin: 20px auto">
        <h1 style="text-align: center;margin: 10px">修改信息</h1>
        <form class="form-horizontal">
            <div class="form-group">
                <label for="studentno" class="col-sm-2 control-label">学号:</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" id="studentno" name="studentno" placeholder="请输入学号">
                </div>
            </div>
            <div class="form-group">
                <label for="name" class="col-sm-2 control-label">姓名:</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" id="name" name="name" placeholder="请输入姓名">
                </div>
            </div>
            <div class="form-group">
                <label for="class" class="col-sm-2 control-label">班级:</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" id="class" name="class" placeholder="请输入班级">
                </div>
            </div>
            <div class="form-group">
                <label for="major" class="col-sm-2 control-label">专业:</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" id="major" name="major" placeholder="请输入专业">
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-2 control-label">性别:</label>
                <div class="col-sm-10">
                    <label class="radio-inline">
                        <input type="radio" name="gender" value="option1"> 男
                    </label>
                    <label class="radio-inline">
                        <input type="radio" name="gender" value="option1"> 女
                    </label>
                </div>
            </div>
            <div class="form-group">
                <label for="age" class="col-sm-2 control-label">年龄:</label>
                <div class="col-sm-10">
                    <input type="number" class="form-control" id="age" name="age" placeholder="请输入年龄">
                </div>
            </div>
    
            <div class="form-group">
                <div style="text-align: center">
                    <button type="submit" class="btn btn-primary">修改</button>
                    <button type="reset" class="btn btn-info">重置</button>
                </div>
            </div>
        </form>
    </div>
    </body>
    </html>
    

    前端界面可根据自己喜好修改。

    接下来创建与表对应的类

    Student类和Admin类,是两个Javabean

    public class Student {
    
        public static final int MALE = 1;
        public static final int FEMALE = 2;
    
        private String studentNo;
        private String name;
        private String classNo;
        private String major;
        private int gender;
        private int age;
    
        public static int getMALE() {
            return MALE;
        }
    
        public static int getFEMALE() {
            return FEMALE;
        }
    
        public String getStudentNo() {
            return studentNo;
        }
    
        public void setStudentNo(String studentNo) {
            this.studentNo = studentNo;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getClassNo() {
            return classNo;
        }
    
        public void setClassNo(String classNo) {
            this.classNo = classNo;
        }
    
        public String getMajor() {
            return major;
        }
    
        public void setMajor(String major) {
            this.major = major;
        }
    
        public int getGender() {
            return gender;
        }
    
        public void setGender(int gender) {
            this.gender = gender;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "Student{" +
                    "studentNo='" + studentNo + '\'' +
                    ", name='" + name + '\'' +
                    ", classNo='" + classNo + '\'' +
                    ", major='" + major + '\'' +
                    ", gender=" + gender +
                    ", age=" + age +
                    '}';
        }
    }
    
    public class Admin {
        private String username;
        private String password;
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        @Override
        public String toString() {
            return "Admin{" +
                    "username='" + username + '\'' +
                    ", password='" + password + '\'' +
                    '}';
        }
    }

    接着创建JDBCUtils类,一个工具类

    由于用到了druid连接池,需要先创建配置文件druid.properties,放在项目根目录下

    driverClassName=com.mysql.cj.jdbc.Driver
    url=jdbc:mysql://localhost:3306/student_course_project?serverTimezone=UCT
    username=root
    password=1229
    initialSize=5
    maxActive=10
    maxWaite=3000
    public class JDBCUtils {
        private static DataSource dataSource;
    
        static {
            try {
                Properties properties = new Properties();
                InputStream stream = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");//用于获取配置文件的输入流
                properties.load(stream); //加载配置文件
                dataSource = DruidDataSourceFactory.createDataSource(properties);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static DataSource getDataSource () {
            return dataSource;
        }
    }

    接下来,登录界面需要将请求发送到Servlet进行处理,修改login.jsp的form表单

    <form class="form-horizontal" action="${pageContext.request.contextPath}/loginServlet" method="post">

    创建一个LoginServlet类

    /**
     * 判断登录是否成功的Servlet
     */
    @WebServlet("/loginServlet")
    public class LoginServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("utf-8"); //设置编码格式
            boolean flag; //为是否存在该用户创建一个flag
    
            //获取用户名和密码
            String username = request.getParameter("username");
            String password = request.getParameter("password");
            Admin admin = new Admin();
            admin.setUsername(username);
            admin.setPassword(password);
    
            AdminService adminService = new AdminServiceImpl ();
            flag = adminService.login (admin); //判断是否存在该用户
    
            if (flag) { //若存在该用户
                response.sendRedirect(request.getContextPath() + "/studentListServlet"); //重定向至studentListServlet
            } else { //若无该用户
                response.sendRedirect(request.getContextPath() + "/register.jsp"); //重定向至注册页面
            }
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request, response);
        }
    }
    

    显然还没有AdminService类和AdminServiceImpl类,创建该两类

    public interface AdminService {
    
        boolean login(Admin admin);
    }
    
    public class AdminServiceImpl implements AdminService {
    
        private AdminDao dao = new AdminDaoImpl();
    
        @Override
        public boolean login(Admin admin) {
            return dao.login (admin);
        }
    }
    

    显然没有DAO层的相关类,创建AdminDao与AdminDaoImpl类

    public interface AdminDao {
        boolean login(Admin admin);
    }
    
    public class AdminDaoImpl implements AdminDao {
    
        private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    
        @Override
        public boolean login(Admin admin) {
            boolean flag = false;
    
            try {
                String sql = "select * from admin where username = ? and password = ?";
                Admin admin_query = template.queryForObject(sql, new BeanPropertyRowMapper<>(Admin.class), admin.getUsername(), admin.getPassword());
                if (admin_query != null) {
                    flag = true;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return flag;
        }
    }
    

    现在可以测试一下是否好用。在admin中添加一个管理员,username和password都设置为root,启动Tomcat,转到login.jsp,输入用户名和密码。

    会有如上信息,成功跳转到了studentListServlet,说明数据库连接、查询成功。这里由于还没有写StudentListServlet类,故会报404错误。下面编写StudentListServlet

    /**
     * 获取用户列表的servlet
     */
    @WebServlet("/studentListServlet")
    public class StudentListServlet extends HttpServlet {
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            StudentService studentService  = new StudentServiceImpl();
    
            List<Student> studentList =  studentService.findStudentForList ();
    
            request.setAttribute("studentList", studentList);
            request.getRequestDispatcher("/studentlist.jsp").forward(request, response);
        }
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request, response);
        }
    }
    

    与之前的登录操作类似,查询得到student表中的数据,封装为List,将这个studentList传进request中,请求转发至studentlist.jsp,改造studentlist.jsp的表格部分,删掉“死数据”,使用jstl和EL表达式获取存入request中的studentList

            <c:forEach items="${requestScope.studentList}" var="student">
                <tr>
                    <td><input type="checkbox"></td>
                    <td>${student.studentNo}</td>
                    <td>${student.name}</td>
                    <td>${student.classNo}</td>
                    <td>${student.major}</td>
                    <td>${student.gender == 1 ? "男" : "女"}</td>
                    <td>${student.age}</td>
                    <td>
                        <button class="btn btn-success">修改</button>
                        <button class="btn btn-danger">删除</button>
                    </td>
                </tr>
            </c:forEach>

    下来进行测试,为student表中添加几行数据

    启动Tomcat,转到login.jsp,登录

    成功查询到信息

    先做这些吧,下次再做剩下的功能。

    展开全文
  • 业务需求:一个登录页面,一个学生展示页面,添加、修改、删除三个功能目的是给大家了解一个初级系统的构造,不写那么复杂的需求了。从第一步开始:创建项目打开eclipse,点击右上角的File-->New-->Dynamic ...

    e9a46819fd11de947c19c8f65f3a12b0.png

    业务需求:一个登录页面,一个学生展示页面,添加、修改、删除三个功能

    目的是给大家了解一个初级系统的构造,不写那么复杂的需求了。

    从第一步开始:创建项目

    打开eclipse,点击右上角的File-->New-->Dynamic Web project,弹出如下图的窗口

    8e2f54293ea63e8dab0439239281e266.png

    点击Next按钮后,呈现的是如下的窗口

    d3ac068444953276633531f3af313ad1.png

    再次点击Next按钮,呈现的是如下窗口

    951e1c140ffc64219463bd03c6c9b54f.png

    点击Finish按钮后就生成了student项目,可以在左侧查看到生成的student项目,下图就是刚刚生成的项目,初始的结构就是这样的

    bbc4667291ff14d027d44291e1b84218.png

    我们现在要创建各种java包src-->new-->package

    b9bff19f859ef8ad6ff2ad9e9af82705.png

    点击package后,弹出如下窗口

    865f9194a8dce64fe84d32f0f044a3c8.png

    点击Finish按钮,就新建了一个 com.student.pojo包

    a7f7ecdf242147ed35160d3a1d15a9a3.png

    重复这样的动作,我们依次新建下边的包,com.student.mapper      com.student.service      com.student.service.impl    com.student.controller

    a7d88e2efca7e7ab77444fed8d5d14ea.png

    展开全文
  • 系统作为servlet和jsp课程设计只开发了部分功能,由Servlet+jsp技术开发,服务器tomcat,数据库mysql,前端BUI,无使用现有框架。融入MVC的设计模型,实现了Spring mvc的前端控制器dispatcher,使开发功能变简单 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,809
精华内容 2,723
关键字:

javaweb学生管理系统

java 订阅
友情链接: s3c2440A.rar