Java web项目实战:学员信息管理系统,CSS隔行换色,font,奇偶选择器【诗书画唱】





create table studentInfo(
sid int primary key auto_increment,
sname varchar(100) not null,
sgender varchar(100) default '男' not null,
sage int not null,
saddress varchar(100) ,
semail varchar(100) );
insert into studentInfo(
sname ,
sgender ,
sage ,
saddress ,
semail
) values ("诗书画唱1",'男','19','北京市朝阳区','SSHC1@163. com'),
("诗书画唱2",'男','20','北京市朝阳区','SSHC2@163. com'),
("诗书画唱3",'男','30','北京市朝阳区','SSHC3@163. com');
--drop table studentInfo
--select * from studentInfo
--update studentInfo set sname='6' , sgender='6' , sage=6 , saddress='6' ,semail='6' where sid =1
--select * from studentInfo where sid=1
--update studentInfo set sname='1',sgender='1' , sage=1, saddress='1', semail='1' where sid =1

下面是常用的语句:
drop table studentInfo
select * from studentInfo
update studentInfo set sname='6' , sgender='6' , sage=6 , saddress='6' ,semail='6' where sid =1
select * from studentInfo where sid=1
update studentInfo set sname='1',sgender='1' , sage=1, saddress='1', semail='1' where sid =1




package com.SSHC.bean;
public class studentInfo {
private Integer sid ;
private String sname;
private String sgender ;
private Integer sage ;
private String saddress;
private String semail;
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSgender() {
return sgender;
}
public void setSgender(String sgender) {
this.sgender = sgender;
}
public Integer getSage() {
return sage;
}
public void setSage(Integer sage) {
this.sage = sage;
}
public String getSaddress() {
return saddress;
}
public void setSaddress(String saddress) {
this.saddress = saddress;
}
public String getSemail() {
return semail;
}
public void setSemail(String semail) {
this.semail = semail;
}
}


package com.SSHC.controller;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.SSHC.DAO.Dao;
import com.SSHC.bean.studentInfo;
@WebServlet("/FirstPageServletStart")
public class FirstPageServletStart extends HttpServlet {
private static final long serialVersionUID = 1L;
public FirstPageServletStart() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
* HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
Dao gd = new Dao();
List<studentInfo>list = gd.selectAll();
StringBuilder html = new StringBuilder();
boolean panDuan=true;
//奇数行为class='false'
for(studentInfo g : list) {
Integer Sid= g.getSid();
String Sname= g.getSname();
String Saddress= g.getSaddress();
String Sgender= g.getSgender();
String Semail= g.getSemail();
Integer Sage= g.getSage();
panDuan=!panDuan;
html.append("<tr class='"+panDuan+"'>");
html.append("<td ><a href='IDSelectServlet?Osid="
+Sid+"'>"
+ Sid + "</a></td>");
html.append("<td >" + Sname + "</td>");
html.append("<td >" + Sgender+ "</td>");
html.append("<td>" + Sage + "</td>");
html.append("<td >" +Saddress + "</td>");
html.append("<td >" + Semail + "</td>");
html.append("</tr>");
}
request.setAttribute("html", html);
request.getRequestDispatcher("firstPage.jsp")
.forward(request, response);
}
}


package com.SSHC.controller;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.SSHC.DAO.Dao;
import com.SSHC.bean.studentInfo;
/**
* Servlet implementation class IDSelectServlet
*/
@WebServlet("/IDSelectServlet")
public class IDSelectServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public IDSelectServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
Dao gd = new Dao();
String Osid=request.getParameter("Osid");
Integer Osid2=0;
if(Osid!=null){
Osid2=Integer.parseInt(Osid);}
System.out.println(Osid2);
List<studentInfo>list = gd.selectOne(Osid2);
Integer Sid= null;
String Sname= null;
String Saddress=null;
String Sgender=null;
String Semail=null;
Integer Sage=null;
for(studentInfo g : list) {
Sid= g.getSid();
Sname= g.getSname();
Saddress= g.getSaddress();
Sgender= g.getSgender();
Semail= g.getSemail();
Sage= g.getSage();
}
request.setAttribute("Sid", Sid);
request.setAttribute("Sname", Sname);
request.setAttribute("Saddress",Saddress);
request.setAttribute("Sage", Sage);
request.setAttribute("Sgender", Sgender);
request.setAttribute("Semail", Semail);
request.getRequestDispatcher("Update.jsp")
.forward(request, response);
}
}


package com.SSHC.controller;
import java.io.IOException;
import java.util.Date;
import java.util.regex.Pattern;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.SSHC.DAO.Dao;
import com.SSHC.bean.studentInfo;
@WebServlet("/UpdateServlet")
public class UpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public UpdateServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest
* request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest
* request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest
request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
String sname=request.getParameter("sname");
String sgender=request.getParameter("sgender");
String sage=request.getParameter("sage");
String saddress=request.getParameter("saddress");
String semail=request.getParameter("semail");
String sid=request.getParameter("sid");
Integer sage2=0;
Boolean B = Pattern.matches("\\d{1,}", sage);
if(sage!= null && sage.length() > 0&&B==true) {
sage2=Integer.parseInt(sage);
// Integer sid2=0;
//
// if(sid!= null && sid.length() > 0) {
//
// sid2=Integer.parseInt(sid);
//
// }
studentInfo u = new studentInfo();
// u.setSid(sid2);
u.setSname(sname);
u.setSaddress(saddress);
u.setSage(sage2);
u.setSemail(semail);
u.setSgender(sgender);
Dao ud = new Dao();
ud.update(u,sid);
String S=null;
if(ud.count>0) {
S="更新成功!";
}else
{
S="更新失败!";
}
request.setAttribute("S", S);
request.getRequestDispatcher("FirstPageServletStart")
.forward(request, response);
}
else {
request.setAttribute("S", "更新失败!年龄应该为数字");
request.getRequestDispatcher("FirstPageServletStart")
.forward(request, response);
}
}
}


package com.SSHC.DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.SSHC.bean.studentInfo;
import com.SSHC.utils.DBUtils;
public class Dao {
public List<studentInfo>selectAll(){
String sql = "select * from studentInfo";
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
List<studentInfo>list = new ArrayList<studentInfo>();
try {
conn = DBUtils.getConn();
pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
while(rs.next()) {
Integer sid = rs.getInt("sid");
String Saddress = rs.getString("Saddress");
String Sname = rs.getString("Sname");
String Sgender= rs.getString("Sgender");
String semail = rs.getString("semail");
Integer sage = rs.getInt("sage");
studentInfo g = new studentInfo();
g.setSid(sid);
g.setSage(sage);
g.setSgender(Sgender);
g.setSemail(semail);
g.setSname(Sname);
g.setSaddress(Saddress);
list.add(g);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
public List<studentInfo>selectOne(Integer Osid){
String sql = "select * from studentInfo where sid=?";
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
List<studentInfo>list = new ArrayList<studentInfo>();
try {
conn = DBUtils.getConn();
pstm = conn.prepareStatement(sql);
pstm.setObject(1, Osid);
System.out.println(sql);
rs = pstm.executeQuery();
while(rs.next()) {
Integer sid = rs.getInt("sid");
String Saddress = rs.getString("Saddress");
String Sname = rs.getString("Sname");
String Sgender= rs.getString("Sgender");
String semail = rs.getString("semail");
Integer sage = rs.getInt("sage");
studentInfo g = new studentInfo();
g.setSid(sid);
g.setSage(sage);
g.setSgender(Sgender);
g.setSemail(semail);
g.setSname(Sname);
g.setSaddress(Saddress);
list.add(g);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
// public Integer add(studentInfo u) {
//
// String sql = "insert into studentInfo(sname ,"
// + "sgender ,"
// + "sage "
// + ",saddress ,semail)values (?,?,?,?,?) ";
// Connection conn = null;
// PreparedStatement pstm = null;
// ResultSet rs = null;
//
// try {
// conn = DBUtils.getConn();
// pstm = conn.prepareStatement(sql);
// pstm.setObject(1,u.getSname());
// pstm.setObject(2,u.getSgender());
// pstm.setObject(3,u.getSage());
// pstm.setObject(5,u.getSemail());
// pstm.setObject(4,u.getSaddress());
// pstm.executeUpdate();
// } catch (SQLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }finally{
//
//
// DBUtils.close(rs, pstm, conn);
// }
// return 0;
// }
public int count=0;
public Integer update(studentInfo u,String sid) {
/**SQL语句别写错,一般错都是SQL语句写错,update
* 中必要写错成update set
列名1=XXX1 and 列名2=XXX2【这样写可以执行等,但没效果】
,正确的是
update set
列名1=XXX1 , 列名2=XXX2*/
System.out.println("传过来的id为:"+sid);
String sql = "update studentInfo set sname=? , "
+ "sgender=? , sage=?"
+ " , saddress=? , "
+ "semail=? where sid =?";
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
conn = DBUtils.getConn();
pstm = conn.prepareStatement(sql);
pstm.setObject(1,u.getSname());
pstm.setObject(2,u.getSgender());
pstm.setObject(3,u.getSage());
pstm.setObject(5,u.getSemail());
pstm.setObject(4,u.getSaddress());
System.out.println(u.getSname());
pstm.setObject(6,sid);
// pstm.setObject(6,u.getSid());
count=pstm.executeUpdate();
System.out.println(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBUtils.close(rs, pstm, conn);
}
return 0;
}
}


package com.SSHC.Filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
@WebFilter("/*")
public class CodeFilter implements Filter {
public CodeFilter() {
// TODO Auto-generated constructor stub
}
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request,
ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}


package com.SSHC.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;
public class DBUtils {
private static String driverName;
private static String url;
private static String userName;
private static String pwd;
//静态块,随着类加载而运行的
static{
//读取db.properties文件中的内容:
Properties prop = new Properties();
InputStream is = DBUtils.class.getClassLoader()
.getResourceAsStream("db.properties");
try {
prop.load(is);
driverName = prop.getProperty("dn");
url = prop.getProperty("url");
userName = prop.getProperty("un");
pwd = prop.getProperty("up");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConn(){
Connection conn = null;
try {
Class.forName(driverName);
conn = DriverManager.getConnection(url,userName,pwd);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void close(ResultSet rs,
PreparedStatement pstm
,Connection conn){
try {
if(rs != null) {
rs.close();
}
if(pstm != null) {
pstm.close();
}
if(conn != null) {
conn.close();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}


dn=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=UTF-8
un=root
up=root




<%@ page language="java" contentType="text/html;
charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
+"://"+request.getServerName()
+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base hreff="<%=basePath%>">
<title></title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content=
"keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<style type="text/css">
* {
font-size: 23px;
}
td{text-align: center;vertical-align: middle;}
body{
background-image: url('img/1.jpg');
background-repeat: no-repeat;
background-size: 100%;
}
<%--td{background-color: white;}--%>
<%--
【自己原创的隔行换色的方法:】
.false{background-color: white;}
.true{background-color: red;}--%>
<%--奇数行 :--%>
tr:nth-of-type(odd){ background:white;}
<%--偶数行:--%>
tr:nth-of-type(even){ background: red;}
</style>
<script type="text/javascript">
function bk(){
window.location.href = 'Update.jsp';
}
</script>
</head>
<body>
<table cellspacing="0px" border="1px"
style="width:100%;" >
<tr>
<td style="background-color:gray;
text-align:center;">
学员信息列表</td>
</tr>
<tr>
<td>
<table cellspacing="0px" border="1px" style="width:100%;">
<tr >
<th>学员编号</th>
<th>学员姓名</th>
<th>学员性别</th>
<th>学员年龄</th>
<th>家庭住址</th>
<th>Email</th>
</tr>
${html }
</table>
</td>
</tr>
<tr>
<td> <font face="黑体" color='red'>${S }</font>
</td>
</tr>
</table>
</body>
</html>


<%@ page language="java" contentType=
"text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
+"://"+request.getServerName()
+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base hreff="<%=basePath%>">
<title></title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<style type="text/css">
* {
margin:0 auto;
}
td{background-color: white;}
td{text-align: center;vertical-align: middle;
font-size:34px;}
input{font-size:34px;}
body{
background-image: url('img/1.jpg');
background-repeat: no-repeat;
background-size: 100%;
}
<%--String sname=request.getParameter("sname");
String sgender=request.getParameter("sgender");
String sage=request.getParameter("sage");
String saddress=request.getParameter("saddress");
String semail=request.getParameter("semail");
--%>
</style>
<script type="text/javascript">
function cancel(){
window.location.href = 'Update.jsp';
}
function doCheck(){
var sname=document.getElementsByName('sname')[0].value;
var sgender= document.getElementsByName('sgender')[0].value;
var sage= document.getElementsByName('sage')[0].value;
var saddress= document.getElementsByName('saddress')[0].value;
var semail= document.getElementsByName('semail')[0].value;
var reg = /.{1,}/;
var sname= reg.test(sname);
var sage= reg.test(sage);
var sage= reg.test(sage);
var sage= reg.test(sage);
var sage= reg.test(sage);
if(!sname) {
alert('姓名框不能为空!');
return sname;
}
if(!sage) {
alert('年龄框不能为空!');
return sage;
}
if(!sgender) {
alert('性别框不能为空!');
return sgender;
}
if(!saddress) {
alert('地址框不能为空!');
return saddress;
}
if(!semail) {
alert('Email框不能为空!');
return semail;
}
}
</script>
</head>
<body>
<table cellspacing="0px" border="0px" >
<tr>
<th style="background-color:gray;text-align:center;">
<font size="50">学员信息</font></th>
</tr>
<tr>
<td align="center">
<form action="UpdateServlet" method="post"
onsubmit="return doCheck();">
<table cellspacing="0px" border="1px" >
<tr><td><input class="inp" type="hidden" value="${Sid }"
name="sid" /></td></tr>
<tr>
<td>学员姓名:</td>
<td>
<input class="inp" type="text" value="${Sname }"
name="sname" />
</td>
</tr>
<tr>
<td>学员性别:</td>
<td><input type="text" value="${Sgender }" name="sgender" />
</tr>
<tr>
<td>学员年龄:</td>
<td><input type="text" value="${Sage }" name="sage" /></td>
</tr>
<tr>
<td>家庭住址:</td>
<td><input type="text" value="${Saddress }"name="saddress" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" value="${Semail }"name="semail" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="修改" onclick='doCheck();' />
<input type="button" value="重置" onclick="cancel();" />
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>

认为隔行换色不好看可以把奇偶选择器的部分注释:

隔行换色版:


隔行换色版:







