📄 第5章(2).txt
字号:
sql=con.createStatement();
String condition="SELECT * FROM verify WHERE 帐号 = "+"'"+account+"'";
rs =sql.executeQuery(condition);
while(rs.next())
{ String n=rs.getString("帐号");
String s=rs.getString("密码");
if(account.equals(n)&&secret.equals(s))
{ //将帐号和密码存入session对象,以备在输入界面:inputMessage.jsp中使用:
session.setAttribute("account",account);
session.setAttribute("secret",secret);
//为了防止客户浏览器限制了Cooker的使用,需对连接进行重定向处理:
String s1=response.encodeRedirectURL("inputMessage.jsp");
String s2=response.encodeRedirectURL("inputResult.jsp");
//连接到基本信息输入页面:
response.sendRedirect(s1);
}
}
if(!(session.isNew()))
{ out.print("<BR>您输入的帐号或密码不正确"+account+":"+secret);
}
}
catch(SQLException e1) {}
%>
<BR><A HREF="main.jsp">返回主页</A>
</FONT>
</BODY>
</HTML>
基本信息输入页面(效果如图5.45所示)
inputMessage.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY bgcolor=pink ><Font size=1>
<P>在该页面输入若干个学生的基本信息,<BR>或直接连接到成绩输入页面。
<%!//处理字符串的一个常用方法:
public String getString(String s)
{ if(s==null) s="";
try {byte a[]=s.getBytes("ISO-8859-1");
s=new String(a);
}
catch(Exception e)
{
}
return s;
}
%>
<% //为了防止客户浏览器限制了Cooker的使用,需对连接进行重定向处理:
String s1=response.encodeRedirectURL("inputMessage.jsp");
String s2=response.encodeRedirectURL("inputResult.jsp");
%>
<% //为了防止客户直接进入该页面,首先从session对象获取密码和帐号信息:
String account="",secret="";
if(session.isNew())
{//如果直接进入该页面就再连接到登录页面:
response.sendRedirect("login.jsp");
}
else
{ account=(String)session.getAttribute("account");
secret=(String)session.getAttribute("secret");
secret=getString(secret);
account=getString(account);
}
//连接到数据库验证帐号和密码:
Connection con=null;
Statement sql=null;
ResultSet rs=null;
boolean boo=false;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException event){}
try
{con=DriverManager.getConnection("jdbc:odbc:manage","","");
sql=con.createStatement();
String condition="SELECT * FROM verify WHERE 帐号 = "+"'"+account+"'";
rs =sql.executeQuery(condition);
while(rs.next())
{ String n=rs.getString("帐号");
String s=rs.getString("密码");
if(account.equals(n)&&secret.equals(s))
{boo=true; break;
}
}
}
catch(SQLException e1) {}
//如果帐号密码正确,就显示输入学生基本信息的表单界面:
if(boo)
{out.print("<FORM action= "+s1+" method=post>");
out.print("<P>输入学生的基本信息:");
out.print("<BR>学号:");
out.print("<Input type=text name=number1>");
out.print("<BR>姓名:");
out.print("<Input type=text name=name>");
out.print("<BR>专业:");
out.print("<Input type=text name=zhuanye>");
out.print("<BR>年级:");
out.print("<Input type=text name=grade>");
out.print("<BR> <Input type=submit value=提交>");
out.print("</FORM>");
}
else
{response.sendRedirect("login.jsp");
}
%>
<% //获取基本信息存入数据库中的"基本信息"表中:
String number1=request.getParameter("number1"),
name =request.getParameter("name"),
zhuanye=request.getParameter("zhuanye"),
grade =request.getParameter("grade");
if(number1==null)
{number1="????????";
}
number1=getString(number1);
number1=number1.trim();
name =getString(name);
zhuanye=getString(zhuanye);
grade =getString(grade);
String basicmessage=
"INSERT INTO 基本信息 VALUES"+"("+"'"+number1+"','"+name+" ',' "+
zhuanye+" ',' "+grade+" ' "+")";
if(!(number1.startsWith("?")))
{ //首先查找基本信息表中是否已存在该学生的信息:
rs=sql.executeQuery("SELECT * FROM 基本信息 WHERE 学号 ="+" '"+number1+"' " );
//如果该学号的学生已经存在,就转入成绩输入页面:
boolean line=rs.next();
//通过line判断结果集是否有记录
if(line==true)
{ out.print("该考号已经存在,请再录入其它学生的基本信息");
out.print("<BR>也可以点击按钮:进入成绩录入页面");
//显示该生的基本信息:
out.print("<BR>学号"+rs.getString(1)) ;
out.print("<BR>姓名"+rs.getString(2)) ;
out.print("<BR>专业"+rs.getString(3)) ;
out.print("<BR>年级"+rs.getString(4)) ;
}
//如果该学号的学生不存在,就将信息写入基本信息表,再转入成绩输入页面:
else
{sql.executeUpdate(basicmessage);
out.print("<BR>该学生的信息已录入成功,请再录入其它学生的基本信息");
out.print("<BR>也可以点击按钮:进入成绩录入页面");
}
}
else
{out.print("必须输入学号,学号不可以用?开头");
}
con.close();
%>
<FORM action=<%=s2%>>
<P>点击按钮连接到学生成绩输入页面:
<BR><Input type="submit" value="连接到学生成绩输入页面">
<BR><A HREF="main.jsp">返回主页</A>
</BODY>
</HTML>
成绩录入页面(效果如图5.46所示)
inputResult.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY bgcolor=yellow ><Font size=1>
<%!//处理字符串的一个常用方法:
public String getString(String s)
{ if(s==null) s="";
try {byte a[]=s.getBytes("ISO-8859-1");
s=new String(a);
}
catch(Exception e)
{ }
return s;
}
%>
<% String s1=response.encodeRedirectURL("inputMessage.jsp");
String s2=response.encodeRedirectURL("inputResult.jsp");
%>
<% //为了防止客户直接进入该页面,首先从session对象获取密码和帐号信息:
String account="",secret="";
if(session.isNew())
{//如果直接进入该页面就连接到登录页面:
response.sendRedirect("login.jsp");
}
else
{ account=(String)session.getAttribute("account");
secret=(String)session.getAttribute("secret");
secret=getString(secret);
account=getString(account);
}
//连接到数据库验证帐号和密码:
Connection con=null;
Statement sql=null;
ResultSet rs=null;
boolean boo=false;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException event){}
try
{con=DriverManager.getConnection("jdbc:odbc:manage","","");
sql=con.createStatement();
String condition="SELECT * FROM verify WHERE 帐号 = "+"'"+account+"'";
rs =sql.executeQuery(condition);
while(rs.next())
{ String n=rs.getString("帐号");
String s=rs.getString("密码");
if(account.equals(n)&&secret.equals(s))
{boo=true; break;
}
}
}
catch(SQLException e1) {}
//如果帐号密码正确,就显示输入成绩的表单界面:
if(boo)
{out.print("<P>输入学生的考试科目、成绩等信息:");
out.print("<FORM action="+s2+" method=post>");
out.print("<BR>学号:");
out.print("<Input type=text name=number2>");
out.print("<BR>科目:");
out.print("<Input type=text name=subject>");
out.print("<BR>成绩:");
out.print("<Input type=text name=result>");
out.print("<BR> <Input type=submit value=提交>");
out.print("</FORM>");
}
else
{response.sendRedirect("login.jsp");
}
%>
<% String number2=request.getParameter("number2"),
subject=request.getParameter("subject"),
result=request.getParameter("result");
if(number2==null)
{number2="########";
}
number2=getString(number2);
subject=getString(subject);
result=getString(result);
number2=number2.trim();
//从"基本信息"表中查找学号是nunumber2的记录:
String basicmessage=
"SELECT * FROM 基本信息 WHERE 学号 = "+" '"+number2+"'";
try { sql=con.createStatement();
rs=sql.executeQuery(basicmessage);
boolean line=rs.next();
//通过line判断结果集是否有记录,
//如果没有该学生的基本信息就返回提示:
if(line==false)
{out.print("你还没有输入成绩呢,");
out.print("如果你输入的学号不在<BR>学生的基本信息表中,");
out.print("请点击按钮:连接到学生<BR>基本信息输入页面.");
}
else
{ //显示该生的基本信息:
out.print("<BR>学号"+rs.getString(1)) ;
out.print("<BR>姓名"+rs.getString(2)) ;
out.print("<BR>专业"+rs.getString(3)) ;
out.print("<BR>年级"+rs.getString(4)) ;
String resultmessage=
"INSERT INTO 成绩 VALUES"+"("+"'"+number2+"','"+subject+" ','"+result+"' "+")";
sql.executeUpdate(resultmessage);
out.print("<BR>成绩已被录入");
}
}
catch(SQLException e)
{out.print("<BR>"+subject+"该课程的成绩已经存在<BR>不允许重复录入");
}
con.close();
%>
<FORM action=<%=s1%>>
<P>点击按钮连接到学生信息输入页面:
<BR><Input type="submit" value="连接到学生基本信息输入页面">
</FORM>
</BODY>
</HTML>
成绩查询页面(效果如图5.47所示)
inquire.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY bgcolor=orange ><Font size=1>
<FORM action="" Method=post>
输入学生的学号:
<Input type=text name=number>
<Input type=submit name=g vale=提交>
</FORM>
<%! Connection con=null; //声明一个共享的连接对象
%>
<% //获取学号:
String studentNumber=request.getParameter("number");
if(studentNumber==null)
{studentNumber="?";
}
byte b[]=studentNumber.getBytes("ISO-8859-1");
studentNumber=new String(b);
Statement sql=null;
ResultSet rs=null;
if(con==null)
{ try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{out.print(e);
}
try {con=DriverManager.getConnection("jdbc:odbc:manage","","");
String condition="SELECT * FROM 成绩 WHERE 学号 = "+"'"+studentNumber+"'";
rs =sql.executeQuery(condition);
}
catch(SQLException e)
{out.print(e);
}
}
else
{ synchronized(con)
{ try { sql=con.createStatement();
String condition="SELECT * FROM 成绩 WHERE 学号 = "+"'"+studentNumber+"'";
rs =sql.executeQuery(condition);
}
catch(SQLException e)
{out.print(e);
}
}
}
try { out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"学号");
out.print("<TH width=100>"+"课程名称");
out.print("<TH width=50>"+"成绩");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
String number=rs.getString(1);
out.print("<TD >"+number+"</TD>");
String subjectName=rs.getString(2);
out.print("<TD >"+subjectName+"</TD>");
String chengji=rs.getString("成绩");
out.print("<TD >"+chengji+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
}
catch(SQLException e1) {}
%>
<BR><A HREF="main.jsp">返回主页</A>
</FONT>
</BODY>
</HTML>
修改密码页面(效果如图5.48所示)
modifySecret.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY bgcolor=pink ><Font size=1>
<P>修改密码,密码长度不能超过30个字符:
<FORM action="" Method="post">
<BR>输入您的帐号:
<BR><Input type=text name="account">
<BR>输入您的密码:
<BR><Input type=password name="secret">
<BR>输入您的新的密码:
<BR><Input type=text name="newSecret1">
<BR>请再输入一次新密码:
<BR><Input type=text name="newSecret2">
<BR><Input type=submit name="g" value="提交">
</FORM>
<%!//处理字符串的一个常用方法:
public String getString(String s)
{ if(s==null) s="";
try {byte a[]=s.getBytes("ISO-8859-1");
s=new String(a);
}
catch(Exception e)
{ }
return s;
}
%>
<% //获取提交的帐号:
String account=request.getParameter("account");
account=getString(account);
//获取提交的密码:
String secret=request.getParameter("secret");
secret=getString(secret);
//获取提交的新密码:
String newSecret1=request.getParameter("newSecret1");
newSecret1=getString(newSecret1);
//获取提交的新密码:
String newSecret2=request.getParameter("newSecret2");
newSecret2=getString(newSecret2);
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException event){}
//查询数据库信息,验证身份:
Connection con=null;
Statement sql=null;
ResultSet rs=null;
boolean modify=false;
boolean ifEquals=false;
ifEquals=(newSecret1.equals(newSecret2))&&(newSecret1.length()<=30);
if(ifEquals==true)
{try
{ con=DriverManager.getConnection("jdbc:odbc:manage","","");
sql=con.createStatement();
String condition="SELECT * FROM verify WHERE 帐号 = "+"'"+account+"'";
rs =sql.executeQuery(condition);
while(rs.next())
{ String n=rs.getString("帐号");
String s=rs.getString("密码");
if(account.equals(n)&&secret.equals(s))
{ //修改密码:
modify=true;
out.print("您的密码已经更新");
String c=
"UPDATE verify SET 密码 = "+"'"+newSecret1+"'"+" WHERE 帐号 = "+"'"+account+"'";
rs =sql.executeQuery(c);
}
}
}
catch(SQLException e1) {}
}
else
{ out.print("你两次输入的密码不一致或长度过大");
}
if(modify==false&&ifEquals==true)
{ out.print("<BR>您没有输入密码帐号或<BR>您输入的帐号或密码不正确"+account+":"+secret);
}
%>
</FONT>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -