Java web項目實戰(zhàn):學員信息管理系統(tǒng),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','北京市朝陽區(qū)','SSHC1@163. com'),
("詩書畫唱2",'男','20','北京市朝陽區(qū)','SSHC2@163. com'),
("詩書畫唱3",'男','30','北京市朝陽區(qū)','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;
//奇數(shù)行為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", "更新失?。∧挲g應(yīng)該為數(shù)字");
? ?
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【這樣寫可以執(zhí)行等,但沒效果】
,正確的是
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;
? ? //靜態(tài)塊,隨著類加載而運行的
? ? static{
? ? //讀取db.properties文件中的內(nèi)容:
? ? 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;}--%>
<%--
【自己原創(chuàng)的隔行換色的方法:】
.false{background-color: white;}
.true{background-color: red;}--%>
<%--奇數(shù)行 :--%>
tr:nth-of-type(odd){ background:white;}
<%--偶數(shù)行:--%>?
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>

認為隔行換色不好看可以把奇偶選擇器的部分注釋:

隔行換色版:


隔行換色版:







