---恢复内容开始---
本周只做了一件事,就是学生信息管理系统。
首先,信息管理系统的学籍信息的获取,是基于Python爬虫爬取的中国所有省市名及对应的的身份证号前六位,并通过身份证号生成相关的家庭住址、高考考号、生日、省份、城市信息,以及通过以前创建的数据表中的姓名、性别、学号、学院、专业、班级相关联生成护照姓名、年级、行政班级、行政学院等学籍信息,使信息显得极其逼真。
用于生成学籍的Python源码如下:
1 from xpinyin import Pinyin 2 from pymysql import * 3 import random 4 import time 5 from bs4 import BeautifulSoup 6 from urllib3 import * 7 from re import * 8 import json 9 10 num_list = [] 11 address_list = [] 12 13 def regiun(): 14 #爬虫爬取身份证前六位及对应地址 15 16 url = "http://www.360doc.com/content/12/1010/21/156610_240728293.shtml" 17 http = PoolManager() 18 html = http.request('GET', url) 19 htmlstr = html.data.decode('utf-8') 20 bs = BeautifulSoup(htmlstr, 'lxml') 21 p_list = bs.findAll('p', { 22 'style': "TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; BACKGROUND: white; mso-pagination: widow-orphan"}) 23 index = 1 24 for i in p_list: 25 if index <= 8: 26 index = index + 1 27 continue 28 str = i.text 29 str_list = str.split(" ") 30 num_list.append(str_list[0]) 31 address_list.append(str_list[1]) 32 first = random.choice(num_list) 33 return first 34 35 def year(): 36 now = time.strftime('%Y') 37 second = random.randint(1995,int(now)-18) 38 age = int(now) - second 39 return second 40 41 def month(): 42 three = random.randint(1,12) 43 #月份小于10以下,前面加上0填充 44 if three < 10: 45 three = '0' + str(three) 46 return three 47 else: 48 return three 49 50 def day(): 51 four = random.randint(1,31) 52 #日期小于10以下,前面加上0填充 53 if four < 10: 54 four = '0' + str(four) 55 return four 56 else: 57 return four 58 59 def randoms(): 60 #后面序号低于相应位数,前面加上0填充 61 five = random.randint(1,9999) 62 if five < 10: 63 five = '000' + str(five) 64 return five 65 elif 10 < five < 100: 66 five = '00' + str(five) 67 return five 68 elif 100 < five < 1000: 69 five = '0' + str(five) 70 return five 71 else: 72 return five 73 74 def Random_ID_number(): 75 first = regiun() 76 second = year() 77 three = month() 78 four = day() 79 last = randoms() 80 IDcard = str(first)+str(second)+str(three)+str(four)+str(last) 81 print(IDcard) 82 return IDcard 83 84 #根据身份证号生成生日 85 def get_birthday(ID_number): 86 year=ID_number[6:10] 87 month=ID_number[10:12] 88 day=ID_number[12:14] 89 birthday=year+'-'+month+'-'+day 90 print(birthday) 91 return birthday 92 93 # 根据学院和年级生成校区信息,在此只设定大一土木在南校区 94 def get_campus(agency,grade): 95 now = time.strftime('%Y') 96 if agency == "土木工程学院" and int(now)-int(grade) == 0: 97 print("南校区") 98 return "南校区" 99 else: 100 print("本部") 101 return "本部" 102 103 # 根据身份证号生成学生籍贯 104 def get_native_place(ID_number): 105 print(address_list[num_list.index(ID_number[0:6])]) 106 return address_list[num_list.index(ID_number[0:6])] 107 108 # 随机生成民族 109 def Random_nation(): 110 nation_list=['汉族','回族','苗族','壮族'] 111 print(nation_list[random.randint(0,3)]) 112 return nation_list[random.randint(0,3)] 113 114 # 根据身份证号获取高考考号 115 def get_exam_number(ID_number,grade): 116 year_final=grade[2:4] 117 six=ID_number[0:6] 118 year_enter=str(int(year_final)-3) 119 tail=str(randoms()) 120 exam_num=year_final+six+year_enter+tail 121 print(exam_num) 122 return exam_num 123 124 def get_address(str): 125 if str.find("省") != -1: 126 province = str[0:str.find("省") + 1] 127 if str.find("自治州") != -1: 128 city = str[str.find("省") + 1:str.find("自治州") + 3] 129 elif str.find("市") != -1 and str.find("区") != -1 and str.find("市") < str.find("区"): 130 city = str[str.find("省") + 1:str.find("市") + 1] 131 elif str.find("市") != -1 and str.find("区") != -1 and str.find("市") > str.find("区"): 132 city = str[str.find("省") + 1:str.find("区") + 1] 133 elif str.find("市") != -1 and str.find("区") == -1: 134 city = str[str.find("省") + 1:str.find("市") + 1] 135 elif str.find("市") == -1 and str.find("区") != -1: 136 city = str[str.find("省") + 1:str.find("区") + 1] 137 else: 138 city=province 139 elif str.find("自治区"): 140 province = str[0:str.find("自治区") + 3] 141 if str.find("盟") != -1: 142 city = str[str.find("自治区") + 3:str.find("盟") + 1] 143 elif str.find("市") != -1: 144 city = str[str.find("自治区") + 3:str.find("市") + 1] 145 else: 146 city=province 147 elif str.find("市") != -1: 148 province = str[0:str.find("市") + 1] 149 city = str[0:str.find("市") + 1] 150 address=[province,city] 151 return address 152 153 def get_province(ID_number): 154 print(get_address(address_list[num_list.index(ID_number[0:6])])[0]) 155 return get_address(address_list[num_list.index(ID_number[0:6])])[0] 156 157 def get_city(ID_number): 158 print(get_address(address_list[num_list.index(ID_number[0:6])])[1]) 159 return get_address(address_list[num_list.index(ID_number[0:6])])[1] 160 161 # 随机生成联系电话 162 def Random_phone(): 163 head_list=['151','137','136','172','157'] 164 else_num="" 165 for i in range(0,7): 166 else_num=else_num+str(random.randint(0,9)) 167 print(head_list[random.randint(0,4)]+else_num) 168 return head_list[random.randint(0,4)]+else_num 169 170 # 根据城市名称随机生成高中学校名 171 def Random_school(city): 172 index=['一','二','三','四','五','六','七','八'] 173 print(city+"第"+index[random.randint(0,7)]+"中学") 174 return city+"第"+index[random.randint(0,7)]+"中学" 175 176 # 随机生成考生类别(农村应届或城市应届) 177 def Random_std_class(): 178 list=['农村应届','城市应届'] 179 print(list[random.randint(0,1)]) 180 return list[random.randint(0,1)] 181 182 # 判断理工科还是文科 183 def get_exam_type(agency): 184 if agency=="文法学院" or agency=="马克思主义学院": 185 return "普文" 186 else: 187 return "理工" 188 189 190 try: 191 db = connect(host='localhost', port=3306, user='root', password='010218', db='people_information_db') 192 print("数据库连接成功") 193 194 except Exception as e: 195 print(e) 196 197 inquireSql=''' 198 select * from std_information 199 ''' 200 newtable=''' 201 create table std_status( 202 id varchar(10) primary key not null, 203 name varchar(10) not null, 204 passport_name varchar(20) not null, 205 sex varchar(10) not null, 206 birthday varchar(10) not null, 207 state varchar(10) not null, 208 agency varchar(10) not null, 209 grade varchar(5) not null, 210 major varchar(10) not null, 211 class_num varchar(10) not null, 212 national_major varchar(10) not null, 213 campus varchar(10) not null, 214 administrate_agency varchar(10) not null, 215 administrate_class varchar(10) not null, 216 native_place varchar(30) not null, 217 nation varchar(10) not null, 218 politics_status varchar(15) not null, 219 ID_number varchar(18) not null, 220 exam_number varchar(15) not null, 221 transport_place varchar(20) not null, 222 province varchar(10) not null, 223 city varchar(10) not null, 224 phone varchar(11) not null, 225 address varchar(30) not null, 226 student_origin varchar(10) not null, 227 graduation_school varchar(20) not null, 228 exam_std_class varchar(10) not null, 229 admit_form varchar(10) not null, 230 admit_origin varchar(10) not null, 231 exam_type varchar(10) not null, 232 double_degree varchar(20), 233 std_label varchar(10) not null, 234 special_remark varchar(50) 235 ) 236 ''' 237 238 cursor=db.cursor() 239 try: 240 pin=Pinyin() 241 cursor.execute(newtable) 242 cursor.execute(inquireSql) 243 results=cursor.fetchall() 244 for row in results: 245 id=row[0] 246 name=row[1] 247 passport_name=pin.get_pinyin(row[1],' ').upper() 248 sex=row[2] 249 ID_number=Random_ID_number() 250 birthday=get_birthday(ID_number) 251 state="有学籍 在读" 252 agency=row[3] 253 grade=id[0:4] 254 major=row[4] 255 class_num=row[5] 256 nation_major=major 257 campus=get_campus(agency,grade) 258 administrate_agency=agency 259 administrate_class=class_num 260 native_place=get_native_place(ID_number) 261 nation=Random_nation() 262 politics_status="中国共产主义青年团团员" 263 exam_number=get_exam_number(ID_number,grade) 264 province=get_province(ID_number) 265 city=get_city(ID_number) 266 address=province+city 267 phone=Random_phone() 268 transport_place="石家庄--"+address 269 student_origin=province 270 graduation_school=Random_school(city) 271 exam_std_class=Random_std_class() 272 admit_form="统招" 273 admit_origin=province 274 exam_type=get_exam_type(agency) 275 double_degree="" 276 std_label="普通学生" 277 special_remark="" 278 279 280 insert_information = ''' 281 insert into std_status(id,name,passport_name,sex,birthday,state,agency,grade,major,class_num,national_major, 282 campus,administrate_agency,administrate_class,native_place,nation,politics_status,ID_number,exam_number,transport_place, 283 province,city,phone,address,student_origin,graduation_school,exam_std_class,admit_form,admit_origin,exam_type, 284 double_degree,std_label,special_remark) values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s', 285 '%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s') 286 '''%(id,name,passport_name,sex,birthday,state,agency,grade,major,class_num,nation_major,campus,administrate_agency,administrate_class, 287 native_place,nation,politics_status,ID_number,exam_number,transport_place,province,city,phone,address,student_origin,graduation_school, 288 exam_std_class,admit_form,admit_origin,exam_type,double_degree,std_label,special_remark) 289 cursor.execute(insert_information) 290 db.commit() 291 except Exception as e: 292 print(e)
该程序是基于已经存在的数据表std_information实现的,数据库结构如下:
接下来展示学生信息管理系统的文件结构:
由于之前发过的部分页面在后续进度中有部分修改,在这里重新上传全部页面代码。
登录页面:
1 <%@page import="com.stumag.util.DBUtil"%> 2 <%@page import="com.mysql.cj.jdbc.Driver"%> 3 <%@page import="java.sql.Statement"%> 4 <%@page import="java.sql.ResultSet"%> 5 <%@page import="javax.naming.spi.DirStateFactory.Result"%> 6 <%@page import="java.sql.DriverManager"%> 7 <%@page import="java.sql.Connection"%> 8 <%@ page language="java" contentType="text/html; charset=utf-8" 9 pageEncoding="utf-8"%> 10 DOCTYPE html> 11 <html> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 14 <title>小赵的学生信息管理系统title> 15 <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">script> 16 <style> 17 *{ 18 margin:0; 19 padding:0; 20 } 21 .wrap { 22 background-image: url(images/signin.jpg); 23 background-size: cover; 24 background-repeat: no-repeat; 25 background-position: center center; 26 position: relative; 27 height: 719px; 28 width: 100; 29 } 30 31 .head { 32 background-color: #66CCCC; 33 text-align: center; 34 position: relative; 35 height: 100px; 36 width: 100; 37 text-shadow: 5px 5px 4px Black; 38 } 39 .foot { 40 width: 100; 41 height:200px; 42 background-color:#CC9933; 43 position: relative; 44 } 45 .wrap .logcontainer { 46 position: absolute; 47 background-color: #FFFFFF; 48 top: 20%; 49 right: 15%; 50 height: 408px; 51 width: 368px; 52 } 53 .logbt a input { 54 width: 100%; 55 height: 45px; 56 background-color: #ee7700; 57 border: none; 58 color: white; 59 font-size: 18px; 60 } 61 .logcontainer .logD.logDtip .p1 { 62 display: inline-block; 63 font-size: 28px; 64 margin-top: 30px; 65 width: 86%; 66 } 67 .wrap .logcontainer .logD.logDtip { 68 width: 86%; 69 border-bottom: 1px solid #ee7700; 70 margin-bottom: 60px; 71 margin-top: 0px; 72 margin-right: auto; 73 margin-left: auto; 74 } 75 .logcontainer .lgD img { 76 position: absolute; 77 top: 12px; 78 left: 8px; 79 } 80 .logcontainer .lgD input { 81 width: 100%; 82 height: 42px; 83 text-indent: 2.5rem; 84 } 85 .wrap .logcontainer .lgD { 86 width: 86%; 87 position: relative; 88 margin-bottom: 30px; 89 margin-top: 30px; 90 margin-right: auto; 91 margin-left: auto; 92 } 93 .wrap .logcontainer .logbt { 94 width: 86%; 95 margin-top: 0px; 96 margin-right: auto; 97 margin-bottom: 20px; 98 margin-left: auto; 99 } 100 .wrap .logcontainer .signin{ 101 width:40%; 102 margin-top:20px; 103 margin-bottom:0px; 104 margin-left:auto; 105 margin-right:20px; 106 } 107 .title { 108 font-family: "宋体"; 109 color: #FFFFFF; 110 position: absolute; 111 top: 50%; 112 left: 50%; 113 transform: translate(-50%, -50%); /* 使用css3的transform来实现 */ 114 font-size: 36px; height: 40px; 115 width: 30%; 116 } 117 .power { 118 font-family: "宋体"; 119 color: #FFFFFF; 120 position: absolute; 121 top: 50%; 122 left: 50%; 123 transform: translate(-50%, -50%); 124 height: 60px; 125 width: 40%; 126 text-align:center; 127 } 128 .foot .power .information { 129 width: 100%; 130 height: 24px; 131 position: relative; 132 } 133 134 135 .foot .power p { 136 height: 24px; 137 width: 100%; 138 } 139 .wrap .logcontainer .logbt #loginbtn{ 140 border-radius:8px; 141 } 142 .wrap .logcontainer{ 143 border-radius:5px; 144 border:none; 145 background-color:rgba(232,232,232,0.5) ; 146 } 147 style> 148 head> 149 <body> 150 151 <div class="head" id="head"> 152 <div class="title">小赵的学生信息管理系统div> 153 div> 154 155 <div class="wrap" id="wrap"> 156 <div class="logcontainer"> 157 158 <div class="logD logDtip"> 159 <p class="p1">登录p> 160 div> 161 162 <form action="login_do" method="post"> 163 <div class="lgD"> 164 <img src="images/icon.png" width="20" height="20"/> 165 <input class="logDinput" id="username" name="username" type="text" placeholder="输入用户名" /> 166 div> 167 168 <div class="lgD"> 169 <img src="images/mima.png" width="20" height="20" alt=""/> 170 <input class="logDinput" id="password" name="password" type="password" placeholder="输入用户密码" /> 171 div> 172 173 <div class="logbt"> 174 <a id="loginlink" target="_self"><input type="submit" id="loginbtn" value="登 录"/>a> 175 div> 176 form> 177 178 <div class="signin"> 179 <a href="sign.jsp">没有账号?注册一个a> 180 div> 181 div> 182 div> 183 <div class="foot" id="foot"> 184 <div class="power"> 185 Copyright © 2019 All Rights Reserved. 186 <div class="information"> 187 <span>联系邮箱:[email protected]span> 188 div> 189 <div class="information"> 190 <span>联系地址:石家庄铁道大学span> 191 div> 192 <div class="information"> 193 <span>联系电话:15716888392span> 194 div> 195 div> 196 div> 197 body> 198 html>
处理登录请求的servlet:
1 package com.stumag.servlet; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 import com.stumag.util.DBUtil; 11 12 /** 13 * Servlet implementation class login_do 14 */ 15 @WebServlet("/login_do") 16 public class login_do extends HttpServlet { 17 private static final long serialVersionUID = 1L; 18 19 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 20 // TODO Auto-generated method stub 21 String username=request.getParameter("username"); 22 23 String password=request.getParameter("password"); 24 25 if(DBUtil.isExist(username, password)) 26 { 27 request.getRequestDispatcher("mainpage.jsp").forward(request, response); 28 } 29 else 30 { 31 request.getRequestDispatcher("login.jsp").forward(request,response); 32 } 33 } 34 35 }
效果:
注册页面:
1 <%@ page language="java" contentType="text/html; charset=GB18030" 2 pageEncoding="GB18030"%> 3 DOCTYPE html> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 7 <title>用户注册title> 8 <style> 9 *{ 10 margin=0; 11 padding=0; 12 } 13 .head{ 14 width:100; 15 height:100px; 16 text-align:center; 17 background-color:#66CCCC; 18 position:relative; 19 text-shadow: 5px 5px 4px Black; 20 } 21 .wrap{ 22 width:100; 23 height:768px; 24 background-image:url(images/signin.jpg); 25 background-size:cover; 26 background-repeat:no-repeat; 27 background-position:center center; 28 position:relative; 29 } 30 .foot { 31 width: 100; 32 height:200px; 33 background-color:#CC9933; 34 position: relative; 35 } 36 .title { 37 font-family: "宋体"; 38 color: #FFFFFF; 39 position: absolute; 40 transform: translate(-50%, -50%); 41 font-size: 36px; 42 height: 40px; 43 width: 30%; 44 top: 50%; 45 left: 50%; 46 } 47 .power { 48 font-family: "宋体"; 49 color: #FFFFFF; 50 position: absolute; 51 top: 50%; 52 left: 50%; 53 transform: translate(-50%, -50%); 54 height: 60px; 55 width: 40%; 56 text-align:center; 57 } 58 .foot .power p { 59 height: 24px; 60 width: 100%; 61 } 62 .foot .power .information { 63 width: 100%; 64 height: 24px; 65 position: relative; 66 } 67 .container{ 68 width: 400px; 69 height: 100; 70 padding: 13px; 71 position: absolute; 72 left: 50%; 73 top: 40%; 74 margin-left: -200px; 75 margin-top: -200px; 76 background-color: rgba(240, 255, 255, 0.5); 77 border-radius: 10px; 78 text-align: center; 79 } 80 .input_hint{ 81 width:30%; 82 height:20px; 83 position:relative; 84 margin-top:10px; 85 margin-bottom:0px; 86 margin-left:0px; 87 margin-right:auto; 88 font-size:20sp; 89 } 90 .wrap .container .signintext{ 91 width: 86%; 92 border-bottom: 1px solid #ee7700; 93 margin-bottom: 60px; 94 margin-top: 0px; 95 margin-right: auto; 96 margin-left: auto; 97 } 98 .wrap .container .signintext .signinp{ 99 display: inline-block; 100 font-size: 28px; 101 width:86%; 102 margin-top: 30px; 103 } 104 .wrap .container .user{ 105 position:relative; 106 margin-top:20px; 107 margin-bottom:20px; 108 margin-left:auto; 109 margin-right:auto; 110 } 111 div div table td{ 112 padding:10px; 113 } 114 .wrap .container .user .signinput{ 115 width:70%; 116 height:35px; 117 } 118 .wrap .container .user .signinput .i_input{ 119 width:100%; 120 height:100%; 121 border-radius:5px; 122 border:none; 123 background-color:rgba(232,232,232,0.5) ; 124 } 125 .wrap .container .signbtn{ 126 width: 80%; 127 height: 45px; 128 background-color: #ee7700; 129 border: none; 130 color: white; 131 margin-top:20px; 132 margin-bottom:10px; 133 font-size: 18px; 134 border-radius:8px; 135 } 136 style> 137 138 head> 139 <body> 140 <div id="header" class="head"> 141 <div class="title">小赵的学生信息管理系统div> 142 div> 143 <div class="wrap" id="wrap"> 144 <div id="container" class="container"> 145 <div class="signintext"> 146 <p class="signinp">注册p> 147 div> 148 <form action="signin_do" method="post"> 149 <table class="user"> 150 151 <tr class="ID uesr"> 152 <td class="input_hint"><label>学 /工号:label>td> 153 <td class="signinput"><input class="i_input" name="ID" type="text" maxlength="20" size="20" placeholder="请输入学号/工号">td> 154 tr> 155 156 <tr class="usrn user"> 157 <td class="input_hint"><label>用 户 名:label>td> 158 <td class="signinput"><input class="i_input" name="username" type="text" maxlength="20" size="20" placeholder="请输入用户名">td> 159 tr> 160 161 <tr class="pwd user"> 162 <td class="input_hint"><label>密 码:label>td> 163 <td class="signinput"><input class="i_input" name="password" type="password" maxlength="20" size="20" placeholder="请输入密码">td> 164 tr> 165 166 <tr class="repwd user"> 167 <td class="input_hint"><label>确认密码:label>td> 168 <td class="signinput"><input class="i_input" name="againpwd" type="password" maxlength="20" size="20" placeholder="请再次输入密码">td> 169 tr> 170 171 <tr class="email user"> 172 <td class="input_hint"><label>电子邮箱:label>td> 173 <td class="signinput"><input class="i_input" name="email" type="email" placeholder="请输入邮箱地址" onclick="onclick()">td> 174 tr> 175 176 <tr><td colspan="2"><input id="signbtn" class="signbtn" type="submit" value="注册">td>tr> 177 178 table> 179 form> 180 div> 181 div> 182 <div class="foot" id="foot"> 183 <div class="power"> 184 Copyright © 2019 All Rights Reserved. 185 <div class="information"> 186 <span>联系邮箱:[email protected]span> 187 div> 188 <div class="information"> 189 <span>联系地址:石家庄铁道大学span> 190 div> 191 <div class="information"> 192 <span>联系电话:15716888392span> 193 div> 194 div> 195 div> 196 body> 197 html>
处理注册请求的servlet:
1 package com.stumag.servlet; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 import com.stumag.util.DBUtil; 11 12 /** 13 * Servlet implementation class signin_do 14 */ 15 @WebServlet("/signin_do") 16 public class signin_do extends HttpServlet { 17 private static final long serialVersionUID = 1L; 18 19 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 20 // TODO Auto-generated method stub 21 String ID=request.getParameter("ID"); 22 String username=request.getParameter("username"); 23 String password=request.getParameter("password"); 24 String againpwd=request.getParameter("againpwd"); 25 String email=request.getParameter("email"); 26 if(againpwd.equals(password)==false) 27 { 28 System.out.println("两次密码输入不一致"); 29 request.getRequestDispatcher("signin.jsp").forward(request, response); 30 } 31 else 32 { 33 if(DBUtil.query_idnothad(ID)&&DBUtil.query_usernothad(username)) 34 { 35 DBUtil.addUser(ID, username, password, email); 36 request.getRequestDispatcher("login.jsp").forward(request, response); 37 System.out.println("注册成功"); 38 } 39 else 40 { 41 System.out.println("id或用户名已存在"); 42 request.getRequestDispatcher("sign.jsp").forward(request, response); 43 } 44 } 45 } 46 47 }
效果:
登录首页:
1 <%@page import="com.mysql.cj.jdbc.Driver"%> 2 <%@page import="java.sql.Statement"%> 3 <%@page import="java.sql.ResultSet"%> 4 <%@page import="javax.naming.spi.DirStateFactory.Result"%> 5 <%@page import="java.sql.DriverManager"%> 6 <%@page import="java.sql.Connection"%> 7 <%@ page language="java" contentType="text/html; charset=GB18030" 8 pageEncoding="GB18030"%> 9 DOCTYPE html> 10 <html> 11 <head> 12 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 13 <script type="text/javascript" src="jquery.min.js">script> 14 <script type="text/javascript" src="jquery.bumpytext.packed.js">script> 15 <script type="text/javascript" src="easying.js">script> 16 <script type="text/javascript"> 17 // 18 $(document).ready(function() { 19 $('p#example').bumpyText(); 20 }); //]]> 21 22 $(document).ready(function() { 23 }); 24 script> 25 <title>首页title> 26 27 <style> 28 *{ 29 margin:0px; 30 padding:0px; 31 } 32 .head { 33 background-color: #66CCCC; 34 text-align: center; 35 position: relative; 36 height: 100px; 37 width: 100; 38 text-shadow: 5px 5px 4px Black; 39 } 40 .wrap{ 41 width:100; 42 height:764px; 43 } 44 .wrap .na{ 45 position:relative; 46 height:764px; 47 width:15%; 48 float:left; 49 background-size:cover; 50 background-repeat:no-repeat; 51 } 52 .wrap .newsshow{ 53 position:relative; 54 height:764px; 55 width:85%; 56 float:right; 57 text-align:center; 58 background-size:cover; 59 overflow-y :auto; 60 } 61 .foot { 62 width: 100; 63 height:200px; 64 background-color:#CC9933; 65 position: relative; 66 text-align:center; 67 } 68 .title { 69 font-family: "宋体"; 70 color: #FFFFFF; 71 position: absolute; 72 top: 50%; 73 left: 50%; 74 transform: translate(-50%, -50%); /* 使用css3的transform来实现 */ 75 font-size: 36px; 76 height: 40px; 77 width: 30%; 78 } 79 .power { 80 font-family: "宋体"; 81 color: #FFFFFF; 82 position: absolute; 83 top: 50%; 84 left: 50%; 85 transform: translate(-50%, -50%); 86 height: 60px; 87 width: 40%; 88 align-content:center; 89 } 90 .foot .power .information { 91 width: 100%; 92 height: 24px; 93 position: relative; 94 } 95 .foot .power p { 96 height: 24px; 97 width: 100%; 98 } 99 .wrap .nav .navbar{ 100 text-align:center; 101 text-size:10px; 102 } 103 .nav { float: left; clear: both; width: 15%; margin: auto; height:764px; background: #eee; } 104 .nav ul { list-style: none; margin: 0px; padding: 0px; } 105 .nav li { float: none; width: 100%; } 106 .nav li a { display: block; width: 100%; padding: 20px; border-left: 5px solid; position: relative; z-index: 2; text-decoration: none; color: #444; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;font-size:14px; } 107 .nav li a:hover { border-bottom: 0px; color: #fff; } 108 .nav li:first-child a { border-left: 10px solid #3498db; } 109 .nav li:nth-child(2) a { border-left: 10px solid #ffd071; } 110 .nav li:nth-child(3) a { border-left: 10px solid #f0776c; } 111 .nav li:nth-child(4) a { border-left: 10px solid #9370db; } 112 .nav li:nth-child(5) a { border-left: 10px solid #9acd32; } 113 .nav li:nth-child(6) a { border-left: 10px solid #888888; } 114 .nav li:last-child a { border-left: 10px solid #1abc9c; } 115 .nav li a:after { content: ""; height: 100%; left: 0; top: 0; width: 0px; position: absolute; transition: all 0.3s ease 0s; -webkit-transition: all 0.3s ease 0s; z-index: -1; } 116 .nav li a:hover:after { width: 100%; } 117 .nav li:first-child a:after { background: #3498db; } 118 .nav li:nth-child(2) a:after { background: #ffd071; } 119 .nav li:nth-child(3) a:after { background: #f0776c; } 120 .nav li:nth-child(4) a:after { background: #9370db; } 121 .nav li:nth-child(5) a:after { background: #9acd32; } 122 .nav li:nth-child(6) a:after { background: #888888; } 123 .nav li:last-child a:after { background: #1abc9c; } 124 125 .nav li:first-child a{ background: #3498db; } 126 127 .clearfix {display: inline-block;} 128 .clearfix {display: block;} 129 #example{margin-top:-40px;} 130 .bumpy-char { 131 line-height: 3.4em; 132 position: relative; 133 } 134 135 136 .wrap .newsshow .titleimg{ 137 width:100%; 138 height:170px; 139 background-repeat:no-repeat; 140 background-size:100% 100%; 141 position:relative; 142 background-image:url(images/stdtitle.jpg); 143 } 144 145 .wrap .newsshow .newstitle{ 146 padding-top:10px; 147 width:100%; 148 height:30px; 149 font-family:"宋体"; 150 font-size:20px; 151 text-align:center; 152 position:relative; 153 } 154 155 .wrap .newsshow .newslist{ 156 width:50%; 157 height:100%; 158 float:left; 159 position:relative; 160 background-color: rgba(200, 200, 200, 0.5); 161 border-radius: 10px 0px 0px 10px; 162 } 163 .wrap .newsshow .noticelist{ 164 width:50%; 165 height:100%; 166 float:right; 167 position:relative; 168 background-color: rgba(200, 200, 200, 0.5); 169 border-radius: 0px 10px 10px 0px; 170 } 171 172 .wrap .newsshow .newslist ul li{ 173 padding:10px 50px; 174 text-align:left; 175 border-bottom: 1px solid #ee7700; 176 } 177 .wrap .newsshow .noticelist ul li{ 178 padding:10px 50px; 179 text-align:left; 180 border-bottom: 1px solid #ee7700; 181 } 182 .wrap .newsshow .newslist ul li a{ 183 text-decoration:none; 184 } 185 .wrap .newsshow .noticelist ul li a{ 186 text-decoration:none; 187 } 188 189 style> 190 191 head> 192 <body> 193 <%! 194 String str_newstitle[]=new String[20]; 195 String str_noticetitle[]=new String[20]; 196 String str_newshref[]=new String[20]; 197 String str_noticehref[]=new String[20]; 198 String str_more[]=new String[2]; 199 %> 200 <% 201 Connection con=null; 202 Statement stmt=null; 203 ResultSet rs_news=null; 204 ResultSet rs_notice=null; 205 ResultSet rs_more=null; 206 try{ 207 Class.forName("com.mysql.cj.jdbc.Driver"); 208 String url="jdbc:mysql://localhost:3306/people_information_db?useUnicode=true&characterEncoding=GB18030&useSSL=false&serverTimezone=GMT"; 209 String username="root"; 210 String password="010218"; 211 con=DriverManager.getConnection(url, username, password); 212 if(con!=null) 213 { 214 stmt=con.createStatement(); 215 rs_news=stmt.executeQuery("select * from std_news"); 216 int i=0; 217 while(rs_news.next()) 218 { 219 str_newstitle[i]=rs_news.getString(1); 220 str_newshref[i]=rs_news.getString(2); 221 i++; 222 } 223 rs_notice=stmt.executeQuery("select * from std_notice"); 224 i=0; 225 while(rs_notice.next()) 226 { 227 str_noticetitle[i]=rs_notice.getString(1); 228 str_noticehref[i]=rs_notice.getString(2); 229 i++; 230 } 231 rs_more=stmt.executeQuery("select * from more_news"); 232 i=0; 233 while(rs_more.next()) 234 { 235 str_more[i]=rs_more.getString(1); 236 i++; 237 } 238 } 239 } 240 catch(Exception e) 241 { 242 e.printStackTrace(); 243 } 244 %> 245 <div class="head clearfix" id="head"> 246 <div class="title"> 247 <p id="example">小赵的学生信息管理系统p> 248 div> 249 div> 250 <div class="wrap" id="wrap"> 251 <nav class="nav" id="nav"> 252 <ul class="navbar"> 253 <li><a href="mainpage.jsp">首页a>li> 254 <li><a href="usermag.jsp?index=1">普通管理a>li> 255 <li><a href="statusmag.jsp?index=1">学籍管理a>li> 256 <li><a href="selectclassmag.jsp?index=1">选课管理a>li> 257 <li><a href="scoremag.jsp?index=1">成绩管理a>li> 258 <li><a href="lessonmag.jsp?index=1">课程管理a>li> 259 <li><a href="pwdmag.jsp?index=1">密码管理a>li> 260 ul> 261 nav> 262 <div id="stdtitle" class="stdtitle">div> 263 <div class="newsshow"> 264 <div id="titleimg" class="titleimg">div> 265 <div id="newstitle" class="newstitle">友情新闻链接div> 266 <div id="newslist" class="newslist"> 267 <h3>学校新闻h3> 268 <ul> 269 <li><a href='<%=str_newshref[0] %>'><%=str_newstitle[0] %>a>li> 270 <li><a href='<%=str_newshref[1] %>'><%=str_newstitle[1] %>a>li> 271 <li><a href='<%=str_newshref[2] %>'><%=str_newstitle[2] %>a>li> 272 <li><a href='<%=str_newshref[3] %>'><%=str_newstitle[3] %>a>li> 273 <li><a href='<%=str_newshref[4] %>'><%=str_newstitle[4] %>a>li> 274 <li><a href='<%=str_newshref[5] %>'><%=str_newstitle[5] %>a>li> 275 <li><a href='<%=str_newshref[6] %>'><%=str_newstitle[6] %>a>li> 276 <li><a href='<%=str_newshref[7] %>'><%=str_newstitle[7] %>a>li> 277 <li><a href='<%=str_newshref[8] %>'><%=str_newstitle[8] %>a>li> 278 <li><a href='<%=str_newshref[9] %>'><%=str_newstitle[9] %>a>li> 279 <li><a href='<%=str_newshref[10] %>'><%=str_newstitle[10] %>a>li> 280 <li><a href='<%=str_more[1] %>'>>查看更多a>li> 281 ul> 282 283 div> 284 285 <div id="noticelist" class="noticelist"> 286 <h3>校内公告h3> 287 <ul> 288 <li><a href='<%=str_noticehref[0] %>'><%=str_noticetitle[0] %>a>li> 289 <li><a href='<%=str_noticehref[1] %>'><%=str_noticetitle[1] %>a>li> 290 <li><a href='<%=str_noticehref[2] %>'><%=str_noticetitle[2] %>a>li> 291 <li><a href='<%=str_noticehref[3] %>'><%=str_noticetitle[3] %>a>li> 292 <li><a href='<%=str_noticehref[4] %>'><%=str_noticetitle[4] %>a>li> 293 <li><a href='<%=str_noticehref[5] %>'><%=str_noticetitle[5] %>a>li> 294 <li><a href='<%=str_noticehref[6] %>'><%=str_noticetitle[6] %>a>li> 295 <li><a href='<%=str_noticehref[7] %>'><%=str_noticetitle[7] %>a>li> 296 <li><a href='<%=str_noticehref[8] %>'><%=str_noticetitle[8] %>a>li> 297 <li><a href='<%=str_noticehref[9] %>'><%=str_noticetitle[9] %>a>li> 298 <li><a href='<%=str_noticehref[10] %>'><%=str_noticetitle[10] %>a>li> 299 <li><a href='<%=str_more[0] %>'>>查看更多a>li> 300 ul> 301 div> 302 div> 303 304 div> 305 <div class="foot" id="foot"> 306 <div class="power"> 307 Copyright © 2019 All Rights Reserved. 308 <div class="information"> 309 <span>联系邮箱:[email protected]span> 310 div> 311 <div class="information"> 312 <span>联系地址:石家庄铁道大学span> 313 div> 314 <div class="information"> 315 <span>联系电话:15716888392span> 316 div> 317 div> 318 div> 319 body> 320 html>
效果:
点击链接会跳转到石家庄铁道大学官网对应的新闻展示页面
效果如下:
普通信息管理页面:
1 <%@page import="com.stumag.javabean.Status"%> 2 <%@page import="java.util.ArrayList"%> 3 <%@page import="com.stumag.javabean.Password"%> 4 <%@page import="java.util.List"%> 5 <%@page import="com.stumag.util.DBUtil"%> 6 <%@ page language="java" contentType="text/html; charset=GB18030" 7 pageEncoding="GB18030"%> 8 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 9 DOCTYPE html> 10 <html> 11 <head> 12 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 13 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 14 <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> 15 <script type="text/javascript" src="jquery.min.js">script> 16 <script type="text/javascript" src="jquery.bumpytext.packed.js">script> 17 <script type="text/javascript" src="easying.js">script> 18 <script type="text/javascript"> 19 // 20 $(document).ready(function() { 21 $('p#example').bumpyText(); 22 }); //]]> 23 24 $(document).ready(function() { 25 }); 26 script> 27 <title>普通管理title> 28 <style type="text/css"> 29 *{ 30 margin:0px; 31 padding:0px; 32 } 33 .head { 34 background-color: #66CCCC; 35 text-align: center; 36 position: relative; 37 height: 100px; 38 width: 100; 39 text-shadow: 5px 5px 4px Black; 40 } 41 42 .wrap{ 43 width:100; 44 height:764px; 45 } 46 47 .foot { 48 width: 100; 49 height:200px; 50 background-color:#CC9933; 51 position: relative; 52 text-align:center; 53 } 54 .title { 55 font-family: "宋体"; 56 color: #FFFFFF; 57 position: absolute; 58 top: 50%; 59 left: 50%; 60 transform: translate(-50%, -50%); /* 使用css3的transform来实现 */ 61 font-size: 36px; 62 height: 40px; 63 width: 30%; 64 } 65 .power { 66 font-family: "宋体"; 67 color: #FFFFFF; 68 position: absolute; 69 top: 50%; 70 left: 50%; 71 transform: translate(-50%, -50%); 72 height: 60px; 73 width: 40%; 74 align-content:center; 75 } 76 .foot .power .information { 77 width: 100%; 78 height: 24px; 79 position: relative; 80 } 81 .foot .power p { 82 height: 24px; 83 width: 100%; 84 } 85 .wrap .nav .navbar{ 86 text-align:center; 87 text-size:10px; 88 } 89 .nav { float: left; clear: both; width: 15%; margin: auto; height:764px; background: #eee; } 90 .nav ul { list-style: none; margin: 0px; padding: 0px; } 91 .nav li { float: none; width: 100%; } 92 .nav li a { display: block; width: 100%; padding: 20px; border-left: 5px solid; position: relative; z-index: 2; text-decoration: none; color: #444; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } 93 .nav li a:hover { border-bottom: 0px; color: #fff; } 94 .nav li:first-child a { border-left: 10px solid #3498db; } 95 .nav li:nth-child(2) a { border-left: 10px solid #ffd071; } 96 .nav li:nth-child(3) a { border-left: 10px solid #f0776c; } 97 .nav li:nth-child(4) a { border-left: 10px solid #9370db; } 98 .nav li:nth-child(5) a { border-left: 10px solid #9acd32; } 99 .nav li:nth-child(6) a { border-left: 10px solid #888888; } 100 .nav li:last-child a { border-left: 10px solid #1abc9c; } 101 .nav li a:after { content: ""; height: 100%; left: 0; top: 0; width: 0px; position: absolute; transition: all 0.3s ease 0s; -webkit-transition: all 0.3s ease 0s; z-index: -1; } 102 .nav li a:hover:after { width: 100%; } 103 .nav li:first-child a:after { background: #3498db; } 104 .nav li:nth-child(2) a:after { background: #ffd071; } 105 .nav li:nth-child(3) a:after { background: #f0776c; } 106 .nav li:nth-child(4) a:after { background: #9370db; } 107 .nav li:nth-child(5) a:after { background: #9acd32; } 108 .nav li:nth-child(6) a:after { background: #888888; } 109 .nav li:last-child a:after { background: #1abc9c; } 110 111 .nav li:nth-child(2) a{background: #ffd071;} 112 113 .clearfix {display: inline-block;} 114 .clearfix {display: block;} 115 #example{margin-top:-40px;} 116 .bumpy-char { 117 line-height: 3.4em; 118 position: relative; 119 } 120 121 .wrap .show{ 122 position:relative; 123 height:764px; 124 width:85%; 125 float:right; 126 background-size:cover; 127 overflow-y :auto; 128 } 129 130 .wrap .show .teacherinformation{ 131 position:relative; 132 margin-top:20px; 133 margin-bottom:20px; 134 margin-left:auto; 135 margin-right:auto; 136 width:100%; 137 text-align:center; 138 } 139 140 .userpwd tr{ 141 text-align:center; 142 } 143 .userpwd tr th 144 { 145 padding-top:10px; 146 padding-bottom:10px; 147 padding-left:30px; 148 padding-right:30px; 149 text-align:center; 150 } 151 .userpwd tr td 152 { 153 padding-top:10px; 154 padding-bottom:10px; 155 padding-left:30px; 156 padding-right:30px; 157 } 158 159 .wrap .show div .pagenavbox 160 { 161 position:relative; 162 } 163 164 .pagenav 165 { 166 list-style:none; 167 width:700px; 168 height:50px; 169 float:left; 170 } 171 .pagenav li 172 { 173 float:left; 174 height:50px; 175 width:50px; 176 margin-left:20px; 177 border-radius:8px; 178 background-color:#99FFCC; 179 line-height:50px; 180 } 181 .pagenav li a 182 { 183 text-decoration:none; 184 display:block; 185 height:50px; 186 cursor:pointer; 187 } 188 .pagenav li a:hover{ 189 background-color:#99FFFF; 190 color:black; 191 border-radius:8px; 192 } 193 .wrap .show div .pagenavbox .jumptip 194 { 195 float:left; 196 text-align:center; 197 font-size:16px; 198 overflow:hidden; 199 margin-left:20px; 200 padding-top:10px; 201 } 202 .wrap .show div .pagenavbox .jumptip .jumpto 203 { 204 width:50px; 205 height:30px; 206 border-radius:5px; 207 text-align:center; 208 border-style:none; 209 } 210 .wrap .show div .pagenavbox .jumptip .jumpto:hover 211 { 212 background-color:#CCFFFF; 213 } 214 .wrap .show .inquire 215 { 216 margin:10px auto; 217 text-align:center; 218 } 219 220 .wrap .show .inquire .inquirebtn 221 { 222 border-radius:5px; 223 border-style:none; 224 height:30px; 225 width:66px; 226 } 227 .wrap .show .inquire .inquirebtn:hover 228 { 229 background-color:#CCFFFF; 230 } 231 .wrap .show .addinformation 232 { 233 position:absolute; 234 display:block; 235 top:5px; 236 right:5px; 237 border-radius:50%; 238 width:40px; 239 height:40px; 240 background-repeat:no-repeat; 241 background-size:cover; 242 background-image:url(images/tianjia.png); 243 } 244 .wrap .show .addinformation:hover 245 { 246 background-image:url(images/tianjia_hover.png); 247 } 248 249 style> 250 251 <script type="text/javascript"> 252 253 function GetQueryString(name) { 254 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 255 var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配 256 var context = ""; 257 if (r != null) 258 context = r[2]; 259 reg = null; 260 r = null; 261 return context == null || context == "" || context == "undefined" ? "" : context; 262 } 263 264 function Onload() 265 { 266 267 <% 268 int pagenum=Integer.parseInt(request.getParameter("index")); 269 int totalpage= DBUtil.getPagecount(20,"std_information"); 270 int perpageCount=20; 271 String table="std_information"; 272 List<Status> sttslist=new ArrayList<Status>(); 273 sttslist=DBUtil.showsttsResult(pagenum, perpageCount, table); 274 %> 275 var a_list=document.getElementsByName("navnum"); 276 var index=<%=pagenum%>; 277 var total=<%=totalpage%>; 278 279 if(total<=6) 280 { 281 if(total==6) 282 { 283 a_list[0].innerHTML=total-5; 284 a_list[1].innerHTML=total-4; 285 a_list[2].innerHTML=total-3; 286 a_list[3].innerHTML=total-2; 287 a_list[4].innerHTML=total-1; 288 a_list[5].innerHTML=total; 289 a_list[index-1].style.cssText= 290 "background-color:#99FFFF;color:black;border-radius:8px;" 291 } 292 else 293 { 294 var parent=document.getElementById("pagenav"); 295 var child_list=document.getElementsByName("navnum"); 296 for(var i=0;i<6-total;i++) 297 { 298 parent.removeChild(child_list[5-i]); 299 } 300 } 301 } 302 else 303 { 304 a_list[3].innerHTML="..."; 305 a_list[3].setAttribute("href","#"); 306 if(index<3) 307 { 308 a_list[index-1].style.cssText= 309 "background-color:#99FFFF;color:black;border-radius:8px;" 310 a_list[4].innerHTML=total-1; 311 a_list[5].innerHTML=total; 312 } 313 else if(index<total-4) 314 { 315 a_list[0].innerHTML=index-1; 316 a_list[1].innerHTML=index; 317 a_list[1].style.cssText= 318 "background-color:#99FFFF;color:black;border-radius:8px;"; 319 a_list[2].innerHTML=index+1; 320 a_list[4].innerHTML=total-1; 321 a_list[5].innerHTML=total; 322 } 323 else 324 { 325 a_list[0].innerHTML=total-5; 326 a_list[1].innerHTML=total-4; 327 a_list[2].innerHTML=total-3; 328 a_list[3].innerHTML=total-2; 329 a_list[4].innerHTML=total-1; 330 a_list[5].innerHTML=total; 331 a_list[5-(total-index)].style.cssText= 332 "background-color:#99FFFF;color:black;border-radius:8px;" 333 } 334 } 335 } 336 337 function jumpclick(event) 338 { 339 index=event.innerHTML; 340 if(index!="...") 341 { 342 event.setAttribute("href","usermag.jsp?index="+index); 343 } 344 else 345 { 346 event.setAttribute("href",""); 347 } 348 349 } 350 351 function jumpUporDown(event) 352 { 353 var index=parseInt(GetQueryString("index")); 354 if(index==1&&event.id=="last") 355 { 356 alert("当前是第一页!"); 357 } 358 else if(index==<%=totalpage%>&&event.id=="next") 359 { 360 alert("当前页是最后一页!"); 361 } 362 else if(event.id=="last") 363 { 364 index=index-1; 365 event.setAttribute("href","usermag.jsp?index="+index); 366 } 367 else if(event.id=="next") 368 { 369 index=index+1; 370 event.setAttribute("href","usermag.jsp?index="+index); 371 } 372 } 373 374 function jumpto() 375 { 376 var a_list=document.getElementsByName("navnum"); 377 var obj=document.getElementById("jumpindex"); 378 var indexstr=obj.value; 379 var max=<%=totalpage%>; 380 if(indexstr!="") 381 { 382 index=parseInt(indexstr); 383 if(index<=0||index>max) 384 { 385 alert("您输入的页数不存在!"); 386 obj.value=""; 387 } 388 else 389 { 390 window.location.href="http://localhost:8080/学生管理系统/usermag.jsp?index="+index; 391 } 392 } 393 else 394 { 395 alert("输入页数不能为空!"); 396 } 397 398 } 399 400 function tohead(event) 401 { 402 index=1; 403 event.setAttribute("href","usermag.jsp?index="+index); 404 } 405 function totrailer(event) 406 { 407 index=<%=totalpage%>; 408 event.setAttribute("href","usermag.jsp?index="+index); 409 } 410 function updatenormal(event,i) 411 { 412 var id=document.getElementById(i).innerText; 413 var username=document.getElementById("un"+i).innerText; 414 var sex=document.getElementById("us"+i).innerText; 415 var class_num=document.getElementById("uc"+i).innerText; 416 var agency=document.getElementById("ua"+i).innerText; 417 var major=document.getElementById("um"+i).innerText; 418 event.setAttribute("href","updatenormal.jsp?id="+id+"&username="+encodeURI(encodeURI(username))+ 419 "&sex="+encodeURI(encodeURI(sex))+"&class_num="+encodeURI(encodeURI(class_num))+ 420 "&agency="+encodeURI(encodeURI(agency))+"&major="+encodeURI(encodeURI(major))); 421 } 422 function deletenormal(event,i) 423 { 424 var r = confirm("确定删除该学生的所有信息?\n(包含成绩、课程、学籍)"); 425 if (r == true) 426 { 427 var id=document.getElementById(i).innerText; 428 var username=document.getElementById("un"+i).innerText; 429 var sex=document.getElementById("us"+i).innerText; 430 var class_num=document.getElementById("uc"+i).innerText; 431 var agency=document.getElementById("ua"+i).innerText; 432 var major=document.getElementById("um"+i).innerText; 433 event.setAttribute("href","informationdelete_resultshow.jsp?id="+id); 434 } 435 else 436 alert("操作取消"); 437 438 } 439 440 441 442 script> 443 444 head> 445 <body onload="Onload()"> 446 <div class="head clearfix" id="head"> 447 <div class="title"> 448 <p id="example">小赵的学生信息管理系统p> 449 div> 450 div> 451 <div class="wrap" id="wrap"> 452 <nav class="nav" id="nav"> 453 <ul class="navbar"> 454 <li><a href="mainpage.jsp">首页a>li> 455 <li><a href="usermag.jsp?index=1">普通管理a>li> 456 <li><a href="statusmag.jsp?index=1">学籍管理a>li> 457 <li><a href="selectclassmag.jsp?index=1">选课管理a>li> 458 <li><a href="scoremag.jsp?index=1">成绩管理a>li> 459 <li><a href="lessonmag.jsp?index=1">课程管理a>li> 460 <li><a href="pwdmag.jsp?index=1">密码管理a>li> 461 ul> 462 nav> 463 <div id="show" class="show"> 464 <div id="inquire" class="inquire"> 465 <form action="usermag_orderorinquire.jsp?index=1" method="post"> 466 选择排序方法: 467 <select name="sortmethod" id="sortmethod"> 468 <option label="按学号排序" selected="selected" value="0">option> 469 <option label="按姓名排序" value="1">option> 470 <option label="按性别排序" value="2">option> 471 <option label="按班级排序" value="3">option> 472 <option label="按学院排序" value="4">option> 473 <option label="按专业排序" value="5">option> 474 select> 475 排序类型: 476 <select name="sortstyle" id="sortstyle"> 477 <option label="升序" selected="selected" value="0">option> 478 <option label="降序" value="1">option> 479 select> 480 查询类型: 481 <select name="inquiretype" id="inquiretype"> 482 <option label="按学号查询" selected="selected" value="0">option> 483 <option label="按姓名查询" value="1">option> 484 <option label="按性别查询" value="2">option> 485 <option label="按班级查询" value="3">option> 486 <option label="按学院查询" value="4">option> 487 <option label="按专业查询" value="5">option> 488 select> 489 请输入查询内容: 490 <input type="text" class="inputcontent" name="inputcontent"> 491 <input type="submit" id="inquirebtn" class="inquirebtn" value="执行"> 492 form> 493 div> 494 <a href="addinformation.jsp" class="addinformation" title="点此添加学生信息">a> 495 <div> 496 <table id="userpwd" class="userpwd table table-hover table-striped table-bordered table-sm"> 497 <tr> 498 <th>学号th> 499 <th>姓名th> 500 <th>性别th> 501 <th>班级th> 502 <th>学院th> 503 <th>专业th> 504 <th>修改th> 505 <th>删除th> 506 tr> 507 <c:forEach var="user" items="<%=sttslist %>" varStatus="i"> 508 <tr> 509 <td id="${i.index+1}">${user.getId()}td> 510 <td id="un${i.index+1}">${user.getUsername()}td> 511 <td id="us${i.index+1}">${user.getSex()}td> 512 <td id="uc${i.index+1}">${user.getClass_num()}td> 513 <td id="ua${i.index+1}">${user.getAgency()}td> 514 <td id="um${i.index+1}">${user.getMajor()}td> 515 <td><a href="#" onclick="updatenormal(this,${i.count})">修改a>td> 516 <td><a href="#" onclick="deletenormal(this,${i.count})">删除a>td> 517 tr> 518 c:forEach> 519 table> 520 <div style="text-align:center" class="pagenavbox"> 521 <ul id="pagenav" class="pagenav"> 522 <li><a href="" onclick="tohead(this)">首页a>li> 523 <li><a href="" onclick="jumpUporDown(this)" id="last">上一页a>li> 524 <li><a href="" onclick="jumpclick(this)" name="navnum">1a>li> 525 <li><a href="" onclick="jumpclick(this)" name="navnum">2a>li> 526 <li><a href="" onclick="jumpclick(this)" name="navnum">3a>li> 527 <li><a href="" onclick="jumpclick(this)" name="navnum">4a>li> 528 <li><a href="" onclick="jumpclick(this)" name="navnum">5a>li> 529 <li><a href="" onclick="jumpclick(this)" name="navnum">6a>li> 530 <li><a href="" onclick="jumpUporDown(this)" id="next">下一页a>li> 531 <li><a href="" onclick="totrailer(this)">尾页a>li> 532 ul> 533 <div class="jumptip"> 534 当前是第<%=pagenum %>页; 535 共有<%=totalpage %>页,跳转到 536 <input type="text" size="4" id="jumpindex" name="jumpindex">页 537 <input type="button" value="跳转" onclick="jumpto()" class="jumpto"> 538 div> 539 div> 540 div> 541 div> 542 div> 543 <div class="footer" id="foot"> 544 <div class="power"> 545 Copyright © 2019 All Rights Reserved. 546 <div class="information"> 547 <span>联系邮箱:[email protected]span> 548 div> 549 <div class="information"> 550 <span>联系地址:石家庄铁道大学span> 551 div> 552 <div class="information"> 553 <span>联系电话:15716888392span> 554 div> 555 div> 556 div> 557 558 body> 559 html>
普通信息管理支持查询排序的页面:
1 <%@page import="com.stumag.javabean.Status"%> 2 <%@page import="java.util.ArrayList"%> 3 <%@page import="com.stumag.javabean.Password"%> 4 <%@page import="java.util.List"%> 5 <%@page import="com.stumag.util.DBUtil"%> 6 <%@ page language="java" contentType="text/html; charset=GB18030" 7 pageEncoding="GB18030"%> 8 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 9 DOCTYPE html> 10 <html> 11 <head> 12 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 13 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 14 <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> 15 <script type="text/javascript" src="jquery.min.js">script> 16 <script type="text/javascript" src="jquery.bumpytext.packed.js">script> 17 <script type="text/javascript" src="easying.js">script> 18 <script type="text/javascript"> 19 // 20 $(document).ready(function() { 21 $('p#example').bumpyText(); 22 }); //]]> 23 24 $(document).ready(function() { 25 }); 26 script> 27 <title>普通管理title> 28 <style type="text/css"> 29 *{ 30 margin:0px; 31 padding:0px; 32 } 33 .head { 34 background-color: #66CCCC; 35 text-align: center; 36 position: relative; 37 height: 100px; 38 width: 100; 39 text-shadow: 5px 5px 4px Black; 40 } 41 42 .wrap{ 43 width:100; 44 height:764px; 45 } 46 47 .foot { 48 width: 100; 49 height:200px; 50 background-color:#CC9933; 51 position: relative; 52 text-align:center; 53 } 54 .title { 55 font-family: "宋体"; 56 color: #FFFFFF; 57 position: absolute; 58 top: 50%; 59 left: 50%; 60 transform: translate(-50%, -50%); /* 使用css3的transform来实现 */ 61 font-size: 36px; 62 height: 40px; 63 width: 30%; 64 } 65 .power { 66 font-family: "宋体"; 67 color: #FFFFFF; 68 position: absolute; 69 top: 50%; 70 left: 50%; 71 transform: translate(-50%, -50%); 72 height: 60px; 73 width: 40%; 74 align-content:center; 75 } 76 .foot .power .information { 77 width: 100%; 78 height: 24px; 79 position: relative; 80 } 81 .foot .power p { 82 height: 24px; 83 width: 100%; 84 } 85 .wrap .nav .navbar{ 86 text-align:center; 87 text-size:10px; 88 } 89 .nav { float: left; clear: both; width: 15%; margin: auto; height:764px; background: #eee; } 90 .nav ul { list-style: none; margin: 0px; padding: 0px; } 91 .nav li { float: none; width: 100%; } 92 .nav li a { display: block; width: 100%; padding: 20px; border-left: 5px solid; position: relative; z-index: 2; text-decoration: none; color: #444; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } 93 .nav li a:hover { border-bottom: 0px; color: #fff; } 94 .nav li:first-child a { border-left: 10px solid #3498db; } 95 .nav li:nth-child(2) a { border-left: 10px solid #ffd071; } 96 .nav li:nth-child(3) a { border-left: 10px solid #f0776c; } 97 .nav li:nth-child(4) a { border-left: 10px solid #9370db; } 98 .nav li:nth-child(5) a { border-left: 10px solid #9acd32; } 99 .nav li:nth-child(6) a { border-left: 10px solid #888888; } 100 .nav li:last-child a { border-left: 10px solid #1abc9c; } 101 .nav li a:after { content: ""; height: 100%; left: 0; top: 0; width: 0px; position: absolute; transition: all 0.3s ease 0s; -webkit-transition: all 0.3s ease 0s; z-index: -1; } 102 .nav li a:hover:after { width: 100%; } 103 .nav li:first-child a:after { background: #3498db; } 104 .nav li:nth-child(2) a:after { background: #ffd071; } 105 .nav li:nth-child(3) a:after { background: #f0776c; } 106 .nav li:nth-child(4) a:after { background: #9370db; } 107 .nav li:nth-child(5) a:after { background: #9acd32; } 108 .nav li:nth-child(6) a:after { background: #888888; } 109 .nav li:last-child a:after { background: #1abc9c; } 110 111 .nav li:nth-child(2) a{background: #ffd071;} 112 113 .clearfix {display: inline-block;} 114 .clearfix {display: block;} 115 #example{margin-top:-40px;} 116 .bumpy-char { 117 line-height: 3.4em; 118 position: relative; 119 } 120 121 .wrap .show{ 122 position:relative; 123 height:764px; 124 width:85%; 125 float:right; 126 background-size:cover; 127 overflow-y :auto; 128 } 129 130 .wrap .show .teacherinformation{ 131 position:relative; 132 margin-top:20px; 133 margin-bottom:20px; 134 margin-left:auto; 135 margin-right:auto; 136 width:100%; 137 text-align:center; 138 } 139 140 .userpwd tr{ 141 text-align:center; 142 } 143 .userpwd tr th 144 { 145 padding-top:10px; 146 padding-bottom:10px; 147 padding-left:30px; 148 padding-right:30px; 149 text-align:center; 150 } 151 .userpwd tr td 152 { 153 padding-top:10px; 154 padding-bottom:10px; 155 padding-left:30px; 156 padding-right:30px; 157 } 158 159 .wrap .show div .pagenavbox 160 { 161 position:relative; 162 } 163 164 .pagenav 165 { 166 list-style:none; 167 width:700px; 168 height:50px; 169 float:left; 170 } 171 .pagenav li 172 { 173 float:left; 174 height:50px; 175 width:50px; 176 margin-left:20px; 177 border-radius:8px; 178 background-color:#99FFCC; 179 line-height:50px; 180 } 181 .pagenav li a 182 { 183 text-decoration:none; 184 display:block; 185 height:50px; 186 cursor:pointer; 187 } 188 .pagenav li a:hover{ 189 background-color:#99FFFF; 190 color:black; 191 border-radius:8px; 192 } 193 .wrap .show div .pagenavbox .jumptip 194 { 195 float:left; 196 text-align:center; 197 font-size:16px; 198 overflow:hidden; 199 margin-left:20px; 200 padding-top:10px; 201 } 202 .wrap .show div .pagenavbox .jumptip .jumpto 203 { 204 width:50px; 205 height:30px; 206 border-radius:5px; 207 text-align:center; 208 border-style:none; 209 } 210 .wrap .show div .pagenavbox .jumptip .jumpto:hover 211 { 212 background-color:#CCFFFF; 213 } 214 .wrap .show .inquire 215 { 216 margin:10px auto; 217 text-align:center; 218 } 219 220 .wrap .show .inquire .inquirebtn 221 { 222 border-radius:5px; 223 border-style:none; 224 height:30px; 225 width:66px; 226 } 227 .wrap .show .inquire .inquirebtn:hover 228 { 229 background-color:#CCFFFF; 230 } 231 .wrap .show .addinformation 232 { 233 position:absolute; 234 display:block; 235 top:5px; 236 right:5px; 237 border-radius:50%; 238 width:40px; 239 height:40px; 240 background-repeat:no-repeat; 241 background-size:cover; 242 background-image:url(tianjia.png); 243 } 244 .wrap .show .addinformation:hover 245 { 246 background-image:url(tianjia_hover.png); 247 } 248 249 style> 250 251 <script type="text/javascript"> 252 253 function GetQueryString(name) { 254 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 255 var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配 256 var context = ""; 257 if (r != null) 258 context = r[2]; 259 reg = null; 260 r = null; 261 return context == null || context == "" || context == "undefined" ? "" : context; 262 } 263 264 function Onload() 265 { 266 267 <% 268 request.setCharacterEncoding("GB18030"); 269 String sortmethod=request.getParameter("sortmethod"); 270 String sortstyle=request.getParameter("sortstyle"); 271 String inquiretype=request.getParameter("inquiretype"); 272 String inputcontent=request.getParameter("inputcontent"); 273 if(inputcontent==null) 274 { 275 inputcontent=""; 276 } 277 else 278 inputcontent=java.net.URLDecoder.decode(request.getParameter("inputcontent"), "utf-8"); 279 String orderby,where; 280 281 if(inputcontent!=null&&inputcontent.length()!=0) 282 { 283 if(inquiretype.equals("0")) 284 where="where id=\'"+inputcontent+"\' "; 285 else if(inquiretype.equals("1")) 286 where="where name=\'"+inputcontent+"\' "; 287 else if(inquiretype.equals("2")) 288 where="where sex=\'"+inputcontent+"\' "; 289 else if(inquiretype.equals("3")) 290 where="where class=\'"+inputcontent+"\' "; 291 else if(inquiretype.equals("4")) 292 where="where agency=\'"+inputcontent+"\' "; 293 else 294 where="where major=\'"+inputcontent+"\' "; 295 } 296 else 297 { 298 where=""; 299 inputcontent=""; 300 } 301 System.out.println(where); 302 if(sortmethod.equals("0")) 303 orderby="order by id "; 304 else if(sortmethod.equals("1")) 305 orderby="order by name "; 306 else if(sortmethod.equals("2")) 307 orderby="order by sex "; 308 else if(sortmethod.equals("3")) 309 orderby="order by class "; 310 else if(sortmethod.equals("4")) 311 orderby="order by agency "; 312 else 313 orderby="order by major "; 314 if(sortstyle.equals("1")) 315 orderby=orderby+"desc "; 316 317 318 int pagenum=Integer.parseInt(request.getParameter("index")); 319 int perpageCount=20; 320 String table="std_information "; 321 int totalpage= DBUtil.getTotalPage(pagenum, perpageCount, table, orderby, where); 322 List<Status> sttslist=new ArrayList<Status>(); 323 sttslist=DBUtil.showstts_oiResult(pagenum, perpageCount, table, orderby, where); 324 %> 325 var a_list=document.getElementsByName("navnum"); 326 var index=<%=pagenum%>; 327 var total=<%=totalpage%>; 328 329 var sortmethod=<%=sortmethod%>; 330 var sortstyle=<%=sortstyle%>; 331 var inquiretype=<%=inquiretype%>; 332 333 $("#sortmethod").val(sortmethod); 334 $("#sortstyle").val(sortstyle); 335 $("#inquiretype").val(inquiretype); 336 337 var inputcontent=document.getElementById("inputcontent"); 338 inputcontent.value="<%=inputcontent%>" 339 340 if(total<=6) 341 { 342 if(total==6) 343 { 344 a_list[0].innerHTML=total-5; 345 a_list[1].innerHTML=total-4; 346 a_list[2].innerHTML=total-3; 347 a_list[3].innerHTML=total-2; 348 a_list[4].innerHTML=total-1; 349 a_list[5].innerHTML=total; 350 a_list[index-1].style.cssText= 351 "background-color:#99FFFF;color:black;border-radius:8px;" 352 } 353 else 354 { 355 for(i=0;i<total;i++) 356 { 357 a_list[i].innerHTML=i+1; 358 } 359 for(;i<6;i++) 360 { 361 a_list[i].innerHTML="×"; 362 a_list[i].style.cssText="background-color:#A0A0A0;color:black;border-radius:8px;font-size:20px"; 363 a_list[i].setAttribute("href","#"); 364 } 365 } 366 } 367 else 368 { 369 a_list[3].innerHTML="..."; 370 a_list[3].setAttribute("href","#"); 371 if(index<3) 372 { 373 a_list[index-1].style.cssText= 374 "background-color:#99FFFF;color:black;border-radius:8px;" 375 a_list[4].innerHTML=total-1; 376 a_list[5].innerHTML=total; 377 } 378 else if(index<total-4) 379 { 380 a_list[0].innerHTML=index-1; 381 a_list[1].innerHTML=index; 382 a_list[1].style.cssText= 383 "background-color:#99FFFF;color:black;border-radius:8px;"; 384 a_list[2].innerHTML=index+1; 385 a_list[4].innerHTML=total-1; 386 a_list[5].innerHTML=total; 387 } 388 else 389 { 390 a_list[0].innerHTML=total-5; 391 a_list[1].innerHTML=total-4; 392 a_list[2].innerHTML=total-3; 393 a_list[3].innerHTML=total-2; 394 a_list[4].innerHTML=total-1; 395 a_list[5].innerHTML=total; 396 a_list[5-(total-index)].style.cssText= 397 "background-color:#99FFFF;color:black;border-radius:8px;" 398 } 399 } 400 } 401 402 function jumpclick(event) 403 { 404 var sortmethod=document.getElementById("sortmethod").value; 405 var sortstyle=document.getElementById("sortstyle").value; 406 var inquiretype=document.getElementById("inquiretype").value; 407 var inputcontent=document.getElementById("inputcontent").value; 408 409 index=event.innerHTML; 410 if(index!="..."||index!="×") 411 { 412 if(inputcontent.length==0) 413 { 414 event.setAttribute("href","pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+sortmethod+"&sortstyle="+ 415 sortstyle+"&inquiretype="+inquiretype); 416 } 417 else 418 event.setAttribute("href","pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+sortmethod+"&sortstyle="+ 419 sortstyle+"&inquiretype="+inquiretype+"&inputcontent="+encodeURI(encodeURI(inputcontent))); 420 421 } 422 else 423 { 424 event.setAttribute("href","javascript:return false;"); 425 } 426 427 } 428 429 function jumpUporDown(event) 430 { 431 var sortmethod=document.getElementById("sortmethod").value; 432 var sortstyle=document.getElementById("sortstyle").value; 433 var inquiretype=document.getElementById("inquiretype").value; 434 var inputcontent=document.getElementById("inputcontent").value; 435 var index=parseInt(GetQueryString("index")); 436 if(index==1&&event.id=="last") 437 { 438 alert("当前是第一页!"); 439 event.setAttribute("href","javascript:return false;"); 440 } 441 else if(index==<%=totalpage%>&&event.id=="next") 442 { 443 alert("当前页是最后一页!"); 444 event.setAttribute("href","javascript:return false;"); 445 } 446 else if(event.id=="last") 447 { 448 index=index-1; 449 if(inputcontent.length==0) 450 { 451 event.setAttribute("href","pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+sortmethod+"&sortstyle="+ 452 sortstyle+"&inquiretype="+inquiretype); 453 } 454 else 455 event.setAttribute("href","pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+sortmethod+"&sortstyle="+ 456 sortstyle+"&inquiretype="+inquiretype+"&inputcontent="+encodeURI(encodeURI(inputcontent))); 457 } 458 else if(event.id=="next") 459 { 460 index=index+1; 461 if(inputcontent.length==0) 462 { 463 event.setAttribute("href","pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+sortmethod+"&sortstyle="+ 464 sortstyle+"&inquiretype="+inquiretype); 465 } 466 else 467 event.setAttribute("href","pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+sortmethod+"&sortstyle="+ 468 sortstyle+"&inquiretype="+inquiretype+"&inputcontent="+encodeURI(encodeURI(inputcontent))); 469 } 470 } 471 472 function jumpto() 473 { 474 var sortmethod=document.getElementById("sortmethod").value; 475 var sortstyle=document.getElementById("sortstyle").value; 476 var inquiretype=document.getElementById("inquiretype").value; 477 var inputcontent=document.getElementById("inputcontent").value; 478 var a_list=document.getElementsByName("navnum"); 479 var obj=document.getElementById("jumpindex"); 480 var indexstr=obj.value; 481 var max=<%=totalpage%>; 482 if(indexstr!="") 483 { 484 index=parseInt(indexstr); 485 if(index<=0||index>max) 486 { 487 alert("您输入的页数不存在!"); 488 obj.value=""; 489 } 490 else 491 { 492 if(inputcontent.length==0) 493 { 494 window.location.href="http://localhost:8080/学生管理系统/pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+ 495 sortmethod+"&sortstyle="+sortstyle+"&inquiretype="+inquiretype; 496 } 497 else 498 window.location.href="http://localhost:8080/学生管理系统/pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+ 499 sortmethod+"&sortstyle="+sortstyle+"&inquiretype="+inquiretype+"&inputcontent="+encodeURI(encodeURI(inputcontent)); 500 } 501 } 502 else 503 { 504 alert("输入页数不能为空!"); 505 } 506 507 } 508 509 function tohead(event) 510 { 511 var sortmethod=document.getElementById("sortmethod").value; 512 var sortstyle=document.getElementById("sortstyle").value; 513 var inquiretype=document.getElementById("inquiretype").value; 514 var inputcontent=document.getElementById("inputcontent").value; 515 index=1; 516 if(inputcontent.length==0) 517 { 518 event.setAttribute("href","pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+sortmethod+"&sortstyle="+ 519 sortstyle+"&inquiretype="+inquiretype); 520 } 521 else 522 event.setAttribute("href","pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+sortmethod+"&sortstyle="+ 523 sortstyle+"&inquiretype="+inquiretype+"&inputcontent="+encodeURI(encodeURI(inputcontent))); 524 } 525 function totrailer(event) 526 { 527 var sortmethod=document.getElementById("sortmethod").value; 528 var sortstyle=document.getElementById("sortstyle").value; 529 var inquiretype=document.getElementById("inquiretype").value; 530 var inputcontent=document.getElementById("inputcontent").value; 531 index=<%=totalpage%>; 532 if(inputcontent.length==0) 533 { 534 event.setAttribute("href","pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+sortmethod+"&sortstyle="+ 535 sortstyle+"&inquiretype="+inquiretype); 536 } 537 else 538 event.setAttribute("href","pwdmag_orderorinquire.jsp?index="+index+"&sortmethod="+sortmethod+"&sortstyle="+ 539 sortstyle+"&inquiretype="+inquiretype+"&inputcontent="+encodeURI(encodeURI(inputcontent))); 540 } 541 function updatenormal(event,i) 542 { 543 var id=document.getElementById(i).innerText; 544 var username=document.getElementById("un"+i).innerText; 545 var sex=document.getElementById("us"+i).innerText; 546 var class_num=document.getElementById("uc"+i).innerText; 547 var agency=document.getElementById("ua"+i).innerText; 548 var major=document.getElementById("um"+i).innerText; 549 event.setAttribute("href","updatenormal.jsp?id="+id+"&username="+encodeURI(encodeURI(username))+ 550 "&sex="+encodeURI(encodeURI(sex))+"&class_num="+encodeURI(encodeURI(class_num))+ 551 "&agency="+encodeURI(encodeURI(agency))+"&major="+encodeURI(encodeURI(major))); 552 } 553 function deletenormal(event,i) 554 { 555 var r = confirm("确定删除该学生的所有信息?\n(包含成绩、课程、学籍)"); 556 if (r == true) 557 { 558 var id=document.getElementById(i).innerText; 559 var username=document.getElementById("un"+i).innerText; 560 var sex=document.getElementById("us"+i).innerText; 561 var class_num=document.getElementById("uc"+i).innerText; 562 var agency=document.getElementById("ua"+i).innerText; 563 var major=document.getElementById("um"+i).innerText; 564 event.setAttribute("href","informationdelete_resultshow.jsp?id="+id); 565 } 566 else 567 alert("操作取消"); 568 569 } 570 571 script> 572 573 head> 574 <body onload="Onload()"> 575 <div class="head clearfix" id="head"> 576 <div class="title"> 577 <p id="example">小赵的学生信息管理系统p> 578 div> 579 div> 580 <div class="wrap" id="wrap"> 581 <nav class="nav" id="nav"> 582 <ul class="navbar"> 583 <li><a href="mainpage.jsp">首页a>li> 584 <li><a href="usermag.jsp?index=1">普通管理a>li> 585 <li><a href="statusmag.jsp?index=1">学籍管理a>li> 586 <li><a href="selectclassmag.jsp?index=1">选课管理a>li> 587 <li><a href="scoremag.jsp?index=1">成绩管理a>li> 588 <li><a href="lessonmag.jsp?index=1">课程管理a>li> 589 <li><a href="pwdmag.jsp?index=1">密码管理a>li> 590 ul> 591 nav> 592 <div id="show" class="show"> 593 <div id="inquire" class="inquire"> 594 <form action="usermag_orderorinquire.jsp?index=1" method="post"> 595 选择排序方法: 596 <select name="sortmethod" id="sortmethod"> 597 <option label="按学号排序" selected="selected" value="0">option> 598 <option label="按姓名排序" value="1">option> 599 <option label="按性别排序" value="2">option> 600 <option label="按班级排序" value="3">option> 601 <option label="按学院排序" value="4">option> 602 <option label="按专业排序" value="5">option> 603 select> 604 排序类型: 605 <select name="sortstyle" id="sortstyle"> 606 <option label="升序" selected="selected" value="0">option> 607 <option label="降序" value="1">option> 608 select> 609 查询类型: 610 <select name="inquiretype" id="inquiretype"> 611 <option label="按学号查询" selected="selected" value="0">option> 612 <option label="按姓名查询" value="1">option> 613 <option label="按性别查询" value="2">option> 614 <option label="按班级查询" value="3">option> 615 <option label="按学院查询" value="4">option> 616 <option label="按专业查询" value="5">option> 617 select> 618 请输入查询内容: 619 <input type="text" class="inputcontent" name="inputcontent" id="inputcontent"> 620 <input type="submit" id="inquirebtn" class="inquirebtn" value="执行"> 621 form> 622 div> 623 <a href="addinformation.jsp" class="addinformation" title="点此添加学生信息">a> 624 <div> 625 <table id="userpwd" class="userpwd table table-hover table-striped table-bordered table-sm"> 626 <tr> 627 <th>学号th> 628 <th>姓名th> 629 <th>性别th> 630 <th>班级th> 631 <th>学院th> 632 <th>专业th> 633 <th>修改th> 634 <th>删除th> 635 tr> 636 <c:forEach var="user" items="<%=sttslist %>" varStatus="i"> 637 <tr> 638 <td id="${i.index+1}">${user.getId()}td> 639 <td id="un${i.index+1}">${user.getUsername()}td> 640 <td id="us${i.index+1}">${user.getSex()}td> 641 <td id="uc${i.index+1}">${user.getClass_num()}td> 642 <td id="ua${i.index+1}">${user.getAgency()}td> 643 <td id="um${i.index+1}">${user.getMajor()}td> 644 <td><a href="#" onclick="updatenormal(this,${i.count})">修改a>td> 645 <td><a href="#" onclick="deletenormal(this,${i.count})">删除a>td> 646 tr> 647 c:forEach> 648 table> 649 <div style="text-align:center" class="pagenavbox"> 650 <ul id="pagenav" class="pagenav"> 651 <li><a href="" onclick="tohead(this)">首页a>li> 652 <li><a href="" onclick="jumpUporDown(this)" id="last">上一页a>li> 653 <li><a href="" onclick="jumpclick(this)" name="navnum">1a>li> 654 <li><a href="" onclick="jumpclick(this)" name="navnum">2a>li> 655 <li><a href="" onclick="jumpclick(this)" name="navnum">3a>li> 656 <li><a href="" onclick="jumpclick(this)" name="navnum">4a>li> 657 <li><a href="" onclick="jumpclick(this)" name="navnum">5a>li> 658 <li><a href="" onclick="jumpclick(this)" name="navnum">6a>li> 659 <li><a href="" onclick="jumpUporDown(this)" id="next">下一页a>li> 660 <li><a href="" onclick="totrailer(this)">尾页a>li> 661 ul> 662 <div class="jumptip"> 663 当前是第<%=pagenum %>页; 664 共有<%=totalpage %>页,跳转到 665 <input type="text" size="4" id="jumpindex" name="jumpindex">页 666 <input type="button" value="跳转" onclick="jumpto()" class="jumpto"> 667 div> 668 div> 669 div> 670 div> 671 div> 672 <div class="foot" id="foot"> 673 <div class="power"> 674 Copyright © 2019 All Rights Reserved. 675 <div class="information"> 676 <span>联系邮箱:[email protected]span> 677 div> 678 <div class="information"> 679 <span>联系地址:石家庄铁道大学span> 680 div> 681 <div class="information"> 682 <span>联系电话:15716888392span> 683 div> 684 div> 685 div> 686 687 body> 688 html>
效果:
默认是按照学院名排序,下面是分页插件
支持翻页动态刷新页码及跳转功能:
修改基本信息页面:
1 <%@page import="com.stumag.javabean.Status"%> 2 <%@page import="java.util.ArrayList"%> 3 <%@page import="com.stumag.javabean.Password"%> 4 <%@page import="java.util.List"%> 5 <%@page import="java.sql.ResultSet"%> 6 <%@page import="java.sql.PreparedStatement"%> 7 <%@page import="java.sql.Connection"%> 8 <%@page import="com.stumag.util.DBUtil"%> 9 <%@ page language="java" contentType="text/html; charset=GB18030" 10 pageEncoding="GB18030"%> 11 DOCTYPE html> 12 <html> 13 <head> 14 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 15 <title>基本信息修改title> 16 <style> 17 *{ 18 margin=0; 19 padding=0; 20 } 21 .head{ 22 width:100; 23 height:100px; 24 text-align:center; 25 background-color:#66CCCC; 26 position:relative; 27 text-shadow: 5px 5px 4px Black; 28 } 29 .wrap{ 30 width:100; 31 height:768px; 32 background-image:url(images/earth.jpg); 33 background-size:cover; 34 background-repeat:no-repeat; 35 background-position:center center; 36 position:relative; 37 } 38 .foot { 39 width: 100; 40 height:200px; 41 background-color:black; 42 position: relative; 43 } 44 .title { 45 font-family: "宋体"; 46 color: #FFFFFF; 47 position: absolute; 48 transform: translate(-50%, -50%); 49 font-size: 36px; 50 height: 40px; 51 width: 30%; 52 top: 50%; 53 left: 50%; 54 } 55 .power { 56 font-family: "宋体"; 57 color: #FFFFFF; 58 position: absolute; 59 top: 50%; 60 left: 50%; 61 transform: translate(-50%, -50%); 62 height: 60px; 63 width: 40%; 64 text-align:center; 65 } 66 .foot .power p { 67 height: 24px; 68 width: 100%; 69 } 70 .foot .power .information { 71 width: 100%; 72 height: 24px; 73 position: relative; 74 } 75 .container{ 76 width: 400px; 77 height: 100; 78 padding: 13px; 79 position: absolute; 80 left: 50%; 81 top: 40%; 82 margin-left: -200px; 83 margin-top: -200px; 84 background-color: rgba(240, 255, 255, 0.5); 85 border-radius: 10px; 86 text-align: center; 87 } 88 .input_hint{ 89 width:30%; 90 height:20px; 91 position:relative; 92 margin-top:10px; 93 margin-bottom:0px; 94 margin-left:0px; 95 margin-right:auto; 96 font-size:20sp; 97 } 98 .wrap .container .signintext{ 99 width: 86%; 100 border-bottom: 1px solid #ee7700; 101 margin-bottom: 60px; 102 margin-top: 0px; 103 margin-right: auto; 104 margin-left: auto; 105 } 106 .wrap .container .signintext .signinp{ 107 display: inline-block; 108 font-size: 28px; 109 width:86%; 110 margin-top: 30px; 111 } 112 .wrap .container .user{ 113 position:relative; 114 margin-top:20px; 115 margin-bottom:20px; 116 margin-left:auto; 117 margin-right:auto; 118 } 119 div div table td{ 120 padding:10px; 121 text-align:left; 122 } 123 .wrap .container .user .signinput{ 124 width:70%; 125 height:35px; 126 } 127 .wrap .container .user .signinput .i_input{ 128 height:100%; 129 border-radius:5px; 130 border:none; 131 background-color:rgba(232,232,232,0.5) ; 132 } 133 .wrap .container .signbtn{ 134 width:100%; 135 height: 42px; 136 background-color: #ee7700; 137 border: none; 138 color: white; 139 margin-top:20px; 140 margin-bottom:10px; 141 font-size: 18px; 142 border-radius:8px; 143 } 144 style> 145 146 head> 147 <body> 148 <% 149 String userid=request.getParameter("id"); 150 //String username=request.getParameter("username"); 151 String username = java.net.URLDecoder.decode(request.getParameter("username"), "utf-8"); 152 String sex = java.net.URLDecoder.decode(request.getParameter("sex"), "utf-8"); 153 String class_num = java.net.URLDecoder.decode(request.getParameter("class_num"), "utf-8"); 154 String agency = java.net.URLDecoder.decode(request.getParameter("agency"), "utf-8"); 155 String major = java.net.URLDecoder.decode(request.getParameter("major"), "utf-8"); 156 Status stts=new Status(); 157 stts.setId(userid); 158 stts.setUsername(username); 159 stts.setSex(sex); 160 stts.setClass_num(class_num); 161 stts.setAgency(agency); 162 stts.setMajor(major); 163 %> 164 <script> 165 function Onclick() 166 { 167 var oldid=<%=stts.getId() %> 168 var id=document.getElementById("id").value; 169 var username=document.getElementById("username").value; 170 var sex=document.getElementById("sex").value; 171 var class_num=document.getElementById("class_num").value; 172 var agency=document.getElementById("agency").value; 173 var major=document.getElementById("major").value; 174 if(id==""||username==""||sex==""||class_num==""||agency==""||major=="") 175 { 176 alert("包含空的信息\n请将空信息填写完整"); 177 } 178 else 179 { 180 var form=document.getElementById("update"); 181 form.setAttribute("action","updatenormal_do?oldid="+oldid+"&id="+id+"&username="+encodeURI(encodeURI(username))+ 182 "&sex="+encodeURI(encodeURI(sex))+"&class_num="+encodeURI(encodeURI(class_num))+ 183 "&agency="+encodeURI(encodeURI(agency))+"&major="+encodeURI(encodeURI(major))); 184 } 185 } 186 script> 187 <div id="header" class="head"> 188 <div class="title">小赵的学生信息管理系统div> 189 div> 190 <div class="wrap" id="wrap"> 191 <div id="container" class="container"> 192 <div class="signintext"> 193 <p class="signinp">修改基本信息p> 194 div> 195 <form action="" method="post" id="update"> 196 <table class="user"> 197 <tr> 198 <td class="input_hint"><label>学号:label>td> 199 <td class="signinput"><input class="i_input" name="id" id="id" type="text" value="<%=stts.getId() %>">td> 200 tr> 201 202 <tr> 203 <td class="input_hint"><label>姓名:label>td> 204 <td class="signinput"><input class="i_input" name="username" id="username"type="text" value="<%=stts.getUsername() %>">td> 205 tr> 206 207 <tr> 208 <td class="input_hint"><label>性别:label>td> 209 <td class="signinput"><input class="i_input" name="sex" id="sex" type="text" value="<%=stts.getSex() %>">td> 210 tr> 211 212 <tr> 213 <td class="input_hint"><label>班级:label>td> 214 <td class="signinput"><input class="i_input" name="class_num" id="class_num" type="text" value="<%=stts.getClass_num() %>">td> 215 tr> 216 217 <tr> 218 <td class="input_hint"><label>学院:label>td> 219 <td class="signinput"><input class="i_input" name="agency" id="agency" type="text" value="<%=stts.getAgency() %>">td> 220 tr> 221 222 <tr> 223 <td class="input_hint"><label>专业:label>td> 224 <td class="signinput"><input class="i_input" name="major" id="major" type="text" value="<%=stts.getMajor() %>">td> 225 tr> 226 227 <tr> 228 <td colspan="2"><input class="signbtn" type="submit" value="确认修改" onclick="Onclick()">td> 229 tr> 230 table> 231 form> 232 div> 233 div> 234 <div class="foot" id="foot"> 235 <div class="power"> 236 Copyright © 2019 All Rights Reserved. 237 <div class="information"> 238 <span>联系邮箱:[email protected]span> 239 div> 240 <div class="information"> 241 <span>联系地址:石家庄铁道大学span> 242 div> 243 <div class="information"> 244 <span>联系电话:15716888392span> 245 div> 246 div> 247 div> 248 body> 249 html>
点击某条信息后跳转到信息编辑页面,并提供修改前的默认值。在这里如果修改学号,数据库中对应学号位置的信息会被修改后的信息取代(学号作为primary key)
在这里以最后一个同学 姓名 尤化宇为例,修改其性别为女
可以看到信息已经修改
下面是处理修改信息的servlet的源码:
1 package com.stumag.servlet; 2 3 import java.io.IOException; 4 import java.sql.Connection; 5 import java.sql.PreparedStatement; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.annotation.WebServlet; 9 import javax.servlet.http.HttpServlet; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletResponse; 12 13 import com.stumag.util.DBUtil; 14 15 /** 16 * Servlet implementation class updatenormal_do 17 */ 18 @WebServlet("/updatenormal_do") 19 public class updatenormal_do extends HttpServlet { 20 private static final long serialVersionUID = 1L; 21 22 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 23 // TODO Auto-generated method stub 24 String oldid=request.getParameter("oldid"); 25 String id=request.getParameter("id"); 26 String username = java.net.URLDecoder.decode(request.getParameter("username"), "utf-8"); 27 String sex = java.net.URLDecoder.decode(request.getParameter("sex"), "utf-8"); 28 String class_num = java.net.URLDecoder.decode(request.getParameter("class_num"), "utf-8"); 29 String agency = java.net.URLDecoder.decode(request.getParameter("agency"), "utf-8"); 30 String major = java.net.URLDecoder.decode(request.getParameter("major"), "utf-8"); 31 Connection con=null; 32 PreparedStatement pstmt=null; 33 try { 34 con=DBUtil.getConnection(); 35 System.out.println(id+username+sex+class_num+agency+major+oldid); 36 String sql_query="update std_information set id=? , name=? , sex=? , class=? , agency=? , major=? where id = ?"; 37 String sql_query2="update std_score set id=? , username=? , agency=? , major=? , class=? where id = ?"; 38 pstmt=con.prepareStatement(sql_query); 39 pstmt.setString(1, id); 40 pstmt.setString(2, username); 41 pstmt.setString(3, sex); 42 pstmt.setString(4, class_num); 43 pstmt.setString(5, agency); 44 pstmt.setString(6, major); 45 pstmt.setString(7, oldid); 46 pstmt.executeUpdate(); 47 pstmt=con.prepareStatement(sql_query2); 48 pstmt.setString(1, id); 49 pstmt.setString(2, username); 50 pstmt.setString(3, agency); 51 pstmt.setString(4, major); 52 pstmt.setString(5, class_num); 53 pstmt.setString(6, oldid); 54 pstmt.executeUpdate(); 55 request.getRequestDispatcher("normalupdate_resultshow.jsp?result=1").forward(request, response); 56 } 57 catch (Exception e) { 58 e.printStackTrace(); 59 System.out.println("数据库信息更新失败"); 60 request.getRequestDispatcher("normalupdate_resultshow.jsp?result=0").forward(request, response); 61 } 62 63 } 64 65 }
下面是显示操作结果的jsp源码:
1 <%@ page language="java" contentType="text/html; charset=GB18030" 2 pageEncoding="GB18030"%> 3 DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 7 <title>操作结果title> 8 <style> 9 *{ 10 margin:0px; 11 padding:0px; 12 text-align:center; 13 } 14 style> 15 <script> 16 function Onload() 17 { 18 var show=document.getElementById("show"); 19 if(<%=request.getParameter("result")%>==0) 20 { 21 show.innerText="操作失败,即将返回主页……"; 22 } 23 else 24 { 25 show.innerText="用户普通信息修改成功,即将返回主页……"; 26 } 27 } 28 script> 29 head> 30 <body onload="Onload()"> 31 <% response.setHeader("Refresh", "2;url=usermag.jsp?index=1"); %> 32 <h2 id="show">h2> 33 body> 34 html>
页面支持不同条件下的查询及排序方式如根据姓名、性别、学院、专业、班级等。下面其他有查询排序功能的页面与此相同,不再叙述
页面右上角的“+”按钮用来添加学生信息,点击跳转:
这里添加一个姓名为李四的学生信息
添加信息页代码:
1 <%@page import="com.stumag.javabean.Status"%> 2 <%@page import="java.util.ArrayList"%> 3 <%@page import="com.stumag.javabean.Password"%> 4 <%@page import="java.util.List"%> 5 <%@page import="java.sql.ResultSet"%> 6 <%@page import="java.sql.PreparedStatement"%> 7 <%@page import="java.sql.Connection"%> 8 <%@page import="com.stumag.util.DBUtil"%> 9 <%@ page language="java" contentType="text/html; charset=GB18030" 10 pageEncoding="GB18030"%> 11 DOCTYPE html> 12 <html> 13 <head> 14 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 15 <title>基本信息修改title> 16 <style> 17 *{ 18 margin=0; 19 padding=0; 20 } 21 .header{ 22 width:100; 23 height:100px; 24 text-align:center; 25 background-color:#66CCCC; 26 position:relative; 27 text-shadow: 5px 5px 4px Black; 28 } 29 .wrap{ 30 width:100; 31 height:768px; 32 background-image:url(images/earth.jpg); 33 background-size:cover; 34 background-repeat:no-repeat; 35 background-position:center center; 36 position:relative; 37 overflow-y:auto; 38 } 39 .foot { 40 width: 100; 41 height:200px; 42 background-color:black; 43 position: relative; 44 } 45 .title { 46 font-family: "宋体"; 47 color: #FFFFFF; 48 position: absolute; 49 transform: translate(-50%, -50%); 50 font-size: 36px; 51 height: 40px; 52 width: 30%; 53 top: 50%; 54 left: 50%; 55 } 56 .power { 57 font-family: "宋体"; 58 color: #FFFFFF; 59 position: absolute; 60 top: 50%; 61 left: 50%; 62 transform: translate(-50%, -50%); 63 height: 60px; 64 width: 40%; 65 text-align:center; 66 } 67 .foot .power p { 68 height: 24px; 69 width: 100%; 70 } 71 .foot .power .information { 72 width: 100%; 73 height: 24px; 74 position: relative; 75 } 76 .container{ 77 width: 400px; 78 height: 100; 79 padding: 13px; 80 position: absolute; 81 left: 50%; 82 top: 40%; 83 margin-left: -200px; 84 margin-top: -200px; 85 background-color: rgba(240, 255, 255, 0.5); 86 border-radius: 10px; 87 text-align: center; 88 } 89 .input_hint{ 90 width:30%; 91 height:20px; 92 position:relative; 93 margin-top:10px; 94 margin-bottom:0px; 95 margin-left:0px; 96 margin-right:auto; 97 font-size:20sp; 98 } 99 .wrap .container .signintext{ 100 width: 86%; 101 border-bottom: 1px solid #ee7700; 102 margin-bottom: 60px; 103 margin-top: 0px; 104 margin-right: auto; 105 margin-left: auto; 106 } 107 .wrap .container .signintext .signinp{ 108 display: inline-block; 109 font-size: 28px; 110 width:86%; 111 margin-top: 30px; 112 } 113 .wrap .container .user{ 114 position:relative; 115 margin-top:20px; 116 margin-bottom:20px; 117 margin-left:auto; 118 margin-right:auto; 119 } 120 div div table td{ 121 padding:10px; 122 text-align:left; 123 } 124 .wrap .container .user .signinput{ 125 width:70%; 126 height:35px; 127 } 128 .wrap .container .user .signinput .i_input{ 129 height:100%; 130 border-radius:5px; 131 border:none; 132 background-color:rgba(232,232,232,0.5) ; 133 } 134 .wrap .container .signbtn{ 135 width:100%; 136 height: 42px; 137 background-color: #ee7700; 138 border: none; 139 color: white; 140 margin-top:20px; 141 margin-bottom:10px; 142 font-size: 18px; 143 border-radius:8px; 144 } 145 style> 146 147 head> 148 <body> 149 <script> 150 function Onclick() 151 { 152 var id=document.getElementById("id").value; 153 var username=document.getElementById("username").value; 154 var sex=document.getElementById("sex").value; 155 var class_num=document.getElementById("class_num").value; 156 var agency=document.getElementById("agency").value; 157 var major=document.getElementById("major").value; 158 var email=document.getElementById("email").value; 159 var password=document.getElementById("password").value; 160 if(id==""||username==""||sex==""||class_num==""||agency==""||major==""||email==""||password=="") 161 { 162 alert("包含空的信息\n请将空信息填写完整"); 163 } 164 else 165 { 166 var form=document.getElementById("update"); 167 form.setAttribute("action","addinformation_do?id="+id+"&username="+encodeURI(encodeURI(username))+ 168 "&sex="+encodeURI(encodeURI(sex))+"&class_num="+encodeURI(encodeURI(class_num))+ 169 "&agency="+encodeURI(encodeURI(agency))+"&major="+encodeURI(encodeURI(major))+"&email="+email+ 170 "&password="+password); 171 } 172 } 173 script> 174 <div id="header" class="header"> 175 <div class="title">小赵的学生信息管理系统div> 176 div> 177 <div class="wrap" id="wrap"> 178 <div class="container"> 179 <div class="signintext"> 180 <p class="signinp">添加基本信息p> 181 div> 182 <form action="" method="post" id="update"> 183 <table class="user"> 184 <tr> 185 <td class="input_hint"><label>学号:label>td> 186 <td class="signinput"><input class="i_input" name="id" id="id" type="text">td> 187 tr> 188 189 <tr> 190 <td class="input_hint"><label>姓名:label>td> 191 <td class="signinput"><input class="i_input" name="username" id="username"type="text">td> 192 tr> 193 194 <tr> 195 <td class="input_hint"><label>性别:label>td> 196 <td class="signinput"><input class="i_input" name="sex" id="sex" type="text">td> 197 tr> 198 199 <tr> 200 <td class="input_hint"><label>班级:label>td> 201 <td class="signinput"><input class="i_input" name="class_num" id="class_num" type="text">td> 202 tr> 203 204 <tr> 205 <td class="input_hint"><label>学院:label>td> 206 <td class="signinput"><input class="i_input" name="agency" id="agency" type="text">td> 207 tr> 208 209 <tr> 210 <td class="input_hint"><label>专业:label>td> 211 <td class="signinput"><input class="i_input" name="major" id="major" type="text">td> 212 tr> 213 214 <tr> 215 <td class="input_hint"><label>邮箱:label>td> 216 <td class="signinput"><input class="i_input" name="email" id="email" type="email">td> 217 tr> 218 219 <tr> 220 <td class="input_hint"><label>密码:label>td> 221 <td class="signinput"><input class="i_input" name="password" id="password" type="text">td> 222 tr> 223 224 <tr> 225 <td colspan="2"><input class="signbtn" type="submit" value="确认添加" onclick="Onclick()">td> 226 tr> 227 table> 228 form> 229 div> 230 div> 231 <div class="foot" id="foot"> 232 <div class="power"> 233 Copyright © 2019 All Rights Reserved. 234 <div class="information"> 235 <span>联系邮箱:[email protected]span> 236 div> 237 <div class="information"> 238 <span>联系地址:石家庄铁道大学span> 239 div> 240 <div class="information"> 241 <span>联系电话:15716888392span> 242 div> 243 div> 244 div> 245 body> 246 html>
处理信息添加的servlet代码:
1 package com.stumag.servlet; 2 3 import java.io.IOException; 4 import java.sql.Connection; 5 import java.sql.PreparedStatement; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.annotation.WebServlet; 9 import javax.servlet.http.HttpServlet; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletResponse; 12 13 import com.stumag.util.DBUtil; 14 15 /** 16 * Servlet implementation class addinformation_do 17 */ 18 @WebServlet("/addinformation_do") 19 public class addinformation_do extends HttpServlet { 20 private static final long serialVersionUID = 1L; 21 22 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 23 // TODO Auto-generated method stub 24 // String id=request.getParameter("id"); 25 // String name=request.getParameter("name"); 26 // String sex=request.getParameter("sex"); 27 // String agency=request.getParameter("agency"); 28 // String major=request.getParameter("major"); 29 // String class_num=request.getParameter("class_num"); 30 31 String id=request.getParameter("id"); 32 String name = java.net.URLDecoder.decode(request.getParameter("username"), "utf-8"); 33 String sex = java.net.URLDecoder.decode(request.getParameter("sex"), "utf-8"); 34 String class_num = request.getParameter("class_num"); 35 String agency = java.net.URLDecoder.decode(request.getParameter("agency"), "utf-8"); 36 String major = java.net.URLDecoder.decode(request.getParameter("major"), "utf-8"); 37 String email=request.getParameter("email"); 38 String password=request.getParameter("password"); 39 Connection connection=null; 40 PreparedStatement preparedStatement=null; 41 try { 42 connection=DBUtil.getConnection(); 43 String sql="insert into std_information(id,name,sex,agency,major,class,email,password) values (?,?,?,?,?,?,?,?)"; 44 preparedStatement=connection.prepareStatement(sql); 45 preparedStatement.setString(1, id); 46 preparedStatement.setString(2, name); 47 preparedStatement.setString(3, sex); 48 preparedStatement.setString(4, agency); 49 preparedStatement.setString(5, major); 50 preparedStatement.setString(6, class_num); 51 preparedStatement.setString(7, email); 52 preparedStatement.setString(8, password); 53 preparedStatement.executeUpdate(); 54 sql="insert into std_score(id,username,agency,major,class) values(?,?,?,?,?)"; 55 preparedStatement=connection.prepareStatement(sql); 56 preparedStatement.setString(1, id); 57 preparedStatement.setString(2, name); 58 preparedStatement.setString(3, agency); 59 preparedStatement.setString(4, major); 60 preparedStatement.setString(5, class_num); 61 preparedStatement.executeUpdate(); 62 63 sql="insert into std_status(id,name,sex,agency,major,class_num) values (?,?,?,?,?,?)"; 64 preparedStatement=connection.prepareStatement(sql); 65 preparedStatement.setString(1, id); 66 preparedStatement.setString(2, name); 67 preparedStatement.setString(3, sex); 68 preparedStatement.setString(4, agency); 69 preparedStatement.setString(5, major); 70 preparedStatement.setString(6, class_num); 71 preparedStatement.executeUpdate(); 72 73 request.getRequestDispatcher("addinformation_resultshow.jsp?result=1").forward(request, response); 74 75 } catch (Exception e) { 76 // TODO: handle exception 77 e.printStackTrace(); 78 request.getRequestDispatcher("addinformation_resultshow.jsp?result=0").forward(request, response); 79 } 80 } 81 82 }
操作结果显示页代码:
1 <%@ page language="java" contentType="text/html; charset=GB18030" 2 pageEncoding="GB18030"%> 3 <%@ page buffer="16kb" %> 4 DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 8 <title>操作结果title> 9 <style> 10 *{ 11 margin:0px; 12 padding:0px; 13 text-align:center; 14 } 15 style> 16 <script> 17 function Onload() 18 { 19 var show=document.getElementById("show"); 20 if(<%=request.getParameter("result")%>==0) 21 { 22 show.innerText="操作失败,即将返回主页……"; 23 } 24 else 25 { 26 show.innerText="学生信息添加成功,即将返回主页……"; 27 } 28 } 29 script> 30 head> 31 <body onload="Onload()"> 32 <% response.setHeader("Refresh", "2;url=usermag.jsp?index=1"); %> 33 <h2 id="show">h2> 34 body> 35 html>
回到主页按姓名查询李四
下面以软件工程专业为例进行按学号降序排序的查询:
点击执行后结果如下:
可以看到查询软件工程专业的学生基本信息已经按照学号倒序排列,分页插件的“×”符号样式的按钮表示按钮不可点击
下面展示删除信息的功能,我们以软件工程页最后一名学生吴霸为例删除学生信息,首先按姓名查询到“吴霸”的信息
然后点击删除,会弹出提示框
在此删除学生基本信息之后,数据库中所有包含该信息的表中的对应条目均会被删除,在这里点击确定
返回主页后我们再次查询该条信息
发现返回结果页面条目为空,所有页数导航按钮均为不可点击,结果页总页数为0,信息删除成功
下面是处理删除信息并展示操作结果的jsp代码:
1 <%@page import="com.stumag.util.DBUtil"%> 2 <%@page import="java.sql.PreparedStatement"%> 3 <%@page import="java.sql.Connection"%> 4 <%@ page language="java" contentType="text/html; charset=GB18030" 5 pageEncoding="GB18030"%> 6 <%@ page buffer="16kb" %> 7 DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 8 <html> 9 <head> 10 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 11 <title>操作结果title> 12 <style> 13 *{ 14 margin:0px; 15 padding:0px; 16 text-align:center; 17 } 18 style> 19 <script> 20 function Onload() 21 { 22 <% 23 Connection con=null; 24 PreparedStatement pstmt=null; 25 String userid=request.getParameter("id"); 26 String sql1="delete from std_information where id="+userid; 27 String sql2="delete from std_score where id="+userid; 28 String sql3="delete from std_status where id="+userid; 29 int result; 30 try { 31 con=DBUtil.getConnection(); 32 pstmt=con.prepareStatement(sql1); 33 pstmt.executeUpdate(); 34 pstmt=con.prepareStatement(sql2); 35 pstmt.executeUpdate(); 36 pstmt=con.prepareStatement(sql3); 37 pstmt.executeUpdate(); 38 result=1; 39 } 40 catch (Exception e) { 41 System.out.println("数据库信息更新失败"); 42 e.printStackTrace(); 43 result=0; 44 } 45 %> 46 var show=document.getElementById("show"); 47 if(<%=result%>==0) 48 { 49 show.innerText="操作失败,即将返回主页……"; 50 } 51 else 52 { 53 show.innerText="学生信息删除成功,即将返回主页……"; 54 } 55 } 56 script> 57 head> 58 <body onload="Onload()"> 59 <% response.setHeader("Refresh", "2;url=lessonmag.jsp?index=1"); %> 60 <h2 id="show">h2> 61 body> 62 html>
接下来是学籍管理页面
主页代码:
1 <%@page import="com.stumag.javabean.Status"%> 2 <%@page import="java.util.ArrayList"%> 3 <%@page import="com.stumag.javabean.Password"%> 4 <%@page import="java.util.List"%> 5 <%@page import="com.stumag.util.DBUtil"%> 6 <%@ page language="java" contentType="text/html; charset=GB18030" 7 pageEncoding="GB18030"%> 8 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 9 DOCTYPE html> 10 <html> 11 <head> 12 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 13 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 14 <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> 15 <script type="text/javascript" src="jquery.min.js">script> 16 <script type="text/javascript" src="jquery.bumpytext.packed.js">script> 17 <script type="text/javascript" src="easying.js">script> 18 <script type="text/javascript"> 19 // 20 $(document).ready(function() { 21 $('p#example').bumpyText(); 22 }); //]]> 23 24 $(document).ready(function() { 25 }); 26 script> 27 <title>学籍管理title> 28 <style type="text/css"> 29 *{ 30 margin:0px; 31 padding:0px; 32 } 33 .head { 34 background-color: #66CCCC; 35 text-align: center; 36 position: relative; 37 height: 100px; 38 width: 100; 39 text-shadow: 5px 5px 4px Black; 40 } 41 42 .wrap{ 43 width:100; 44 height:764px; 45 } 46 47 .foot { 48 width: 100; 49 height:200px; 50 background-color:#CC9933; 51 position: relative; 52 text-align:center; 53 } 54 .title { 55 font-family: "宋体"; 56 color: #FFFFFF; 57 position: absolute; 58 top: 50%; 59 left: 50%; 60 transform: translate(-50%, -50%); /* 使用css3的transform来实现 */ 61 font-size: 36px; 62 height: 40px; 63 width: 30%; 64 } 65 .power { 66 font-family: "宋体"; 67 color: #FFFFFF; 68 position: absolute; 69 top: 50%; 70 left: 50%; 71 transform: translate(-50%, -50%); 72 height: 60px; 73 width: 40%; 74 align-content:center; 75 } 76 .foot .power .information { 77 width: 100%; 78 height: 24px; 79 position: