📄
字号:
第8章 网上书店
head.txt:
<table align="center" border="0" width="740" height="18" bgcolor=yellow cellspacing="1">
<tr>
<td width="100%">
<a href="<%=response.encodeURL("http://192.168.1.100:8080/showBookList.jsp")%>">书目浏览</a> |
<a href="<%=response.encodeURL("http://192.168.1.100:8080/userRegister.jsp")%>">用户注册</a> |
<a href="<%=response.encodeURL("http://192.168.1.100:8080/userLogin.jsp")%>">用户登录 </a> |
<a href="<%=response.encodeURL("http://192.168.1.100:8080/buybook.jsp")%>">订购图书 </a> |
<a href="<%=response.encodeURL("http://192.168.1.100:8080/modifyForm.jsp")%>">修改订单 </a> |
<a href="<%=response.encodeURL("http://192.168.1.100:8080/showOrderForm.jsp")%>">查看订单</a>|
<a href="<%=response.encodeURL("http://192.168.1.100:8080/modifyPassword.jsp")%>">修改密码 </a> |
<a href="<%=response.encodeURL("http://192.168.1.100:8080/modifyMessage.jsp")%>">修改个人信息</a> |</td>
</tr>
</table>
主页(效果如图8.5所示)
bookmain.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor =green>
<%@ include file="head.txt" %>
<H1>
<CENTER> 欢迎光临网上书店</CENTER>
</BODY>
</HTML>
注册页面使用的beans
Register.java:
import java.sql.*;
public class Register
{ String logname,
realname,
password,
email,
phone,
address;
String message;
Connection con;
Statement sql;
ResultSet rs;
public Register()
{ //加载桥接器:
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
}
//设置属性值、获取属性值的方法:
public void setLogname(String name)
{ logname=name;
}
public String getLogname()
{return logname;
}
public void setRealname(String name)
{ realname=name;
}
public String getRealname()
{return realname;
}
public void setPassword(String pw)
{ password=pw;
}
public String getPassword()
{return password;
}
public void setEmail(String em)
{ email=em;
}
public String getEmail()
{return email;
}
public void setPhone(String ph)
{ phone=ph;
}
public String getPhone()
{return phone;
}
public void setAddress(String ad)
{ address=ad;
}
public String getAddress()
{return address;
}
public String getMessage()
{return message;
}
//添加记录到数据库的user表:
public void addItem()
{try{
con=DriverManager.getConnection("jdbc:odbc:shop","","");
sql=con.createStatement();
String s=
"'"+logname+"'"+","+"'"+realname+"'"+","+"'"+password+"'"+","+"'"+
email+"'"+","+"'"+phone+"'"+","+"'"+address+"'";
String condition="INSERT INTO user VALUES"+"("+s+")";
sql.executeUpdate(condition);
message="注册成功了";
con.close();
}
catch(SQLException e)
{message="你还没有注册,或该用户已经存在,请你更换一个名字";
}
}
}
注册页面(效果如图8.6所示)
userRegister.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="Register" %>
<%! //处理字符串的方法:
public String codeString(String s)
{ String str=s;
try{byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e)
{ return str;
}
}
%>
<HTML>
<BODY ><Font size=1>
<%@ include file="head.txt" %>
<Font size=1>
<%String str=response.encodeURL("userRegister.jsp");
%>
<P>输入您的信息,带*号项必须填写:
<FORM action="<%=str%>" Method="post">
<BR>登录名称<Input type=text name="logname">*
<BR>真实姓名<Input type=text name="realname">*
<BR>设置密码<Input type=password name="password">*
<BR>电子邮件<Input type=text name="email">*
<BR>联系电话<Input type=text name="phone">*
<BR>通信地址<Input type=text name="address">*
<BR><Input type=submit name="g" value="提交">
</Form>
<jsp:useBean id="login" class="Register" scope="request" >
</jsp:useBean>
<% //提交信息后,进行注册操作:
String logname="",realname="",password="",email="",phone="",address="";
if(!(session.isNew()))
{ logname=request.getParameter("logname");
if(logname==null)
{logname="";
}
logname=codeString(logname);
realname=request.getParameter("realname");
if(realname==null)
{realname="";
}
realname=codeString(realname);
password=request.getParameter("password");
if(password==null)
{password="";
}
password=codeString(password);
email=request.getParameter("email");
if(email==null)
{email="";
}
email=codeString(email);
phone=request.getParameter("phone");
if(phone==null)
{phone="";
}
phone=codeString(phone);
address=request.getParameter("address");
if(address==null)
{address="";
}
address=codeString(address);
}
%>
<% //为了以后处理汉字方便,我们采用了第1种方式初始化beans
if(!(logname.equals(""))&&!(address.equals(""))&&!(phone.equals(""))
&&!(realname.equals(""))&&!(password.equals("")))
{%>
<jsp:setProperty name= "login" property="logname" value="<%=logname%>" />
<jsp:setProperty name= "login" property="realname" value="<%=realname%>" />
<jsp:setProperty name= "login" property="password" value="<%=password%>" />
<jsp:setProperty name= "login" property="email" value="<%=email%>" />
<jsp:setProperty name= "login" property="phone" value="<%=phone%>" />
<jsp:setProperty name= "login" property="address" value="<%=address%>" />
<%
login.addItem();
}
else
{out.print("你还没有填写信息,或信息填写不完整");
}
%>
<% //返回注册信息
if(!(session.isNew()))
{
%>
<jsp:getProperty name= "login" property="message" />
<%
}
%>
</Body>
</HTML>
登录页面使用的beans
Login.java:
import java.sql.*;
public class Login
{ String logname,
realname,
password,
phone,
address;
String success="false",message="";
Connection con;
Statement sql;
ResultSet rs;
public Login()
{ //加载桥接器:
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
}
//设置属性值、获取属性值的方法:
public void setLogname(String name)
{ logname=name;
}
public String getLogname()
{return logname;
}
public void setPassword(String pw)
{ password=pw;
}
public String getPassword()
{return password;
}
public void setRealname(String name)
{ realname=name;
}
public String getRealname()
{return realname;
}
public void setPhone(String ph)
{ phone=ph;
}
public String getPhone()
{return phone;
}
public void setAddress(String ad)
{ address=ad;
}
public String getAddress()
{return address;
}
public String getSuccess()
{return success;
}
//查询数据库的user表:
public String getMessage()
{try{
con=DriverManager.getConnection("jdbc:odbc:shop","","");
sql=con.createStatement();
String condition=
"SELECT * FROM user WHERE logname = "+"'"+logname+"'";
rs=sql.executeQuery(condition);
int rowcount=0;
String ps=null;
while(rs.next())
{ rowcount++;
logname=rs.getString("logname");
realname=rs.getString("realname");
ps=rs.getString("password");
phone=rs.getString("phone");
address=rs.getString("address");
}
if((rowcount==1)&&(password.equals(ps)))
{ message="ok";
success="ok";
}
else
{message="输入的用户名或密码不正确";
success="false";
}
con.close();
return message;
}
catch(SQLException e)
{ message="输入的用户名或密码不正确";
success="false";
return message;
}
}
}
登录页面(效果如图8.7所示)
userLogin.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="Login" %>
<%! //处理字符串的方法:
public String codeString(String s)
{ String str=s;
try{byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e)
{ return str;
}
}
%>
<HTML>
<BODY ><Font size=1>
<%@ include file="head.txt" %>
<Font size=1>
<%String string=response.encodeURL("userLogin.jsp");
%>
<P>输入用户名和密码:
<FORM action="<%=string%>" Method="post">
<BR>登录名称<Input type=text name="logname">
<BR>输入密码<Input type=password name="password">
<BR><Input type=submit name="g" value="提交">
</Form>
<jsp:useBean id="login" class="Login" scope="session" >
</jsp:useBean>
<% //提交信息后,验证信息是否正确:
String message="",
logname="",
password="";
if(!(session.isNew()))
{logname=request.getParameter("logname");
if(logname==null)
{logname="";
}
logname=codeString(logname);
password=request.getParameter("password");
if(password==null)
{password="";
}
password=codeString(password);
}
%>
<%
if(!(logname.equals("")))
{
%>
<jsp:setProperty name= "login" property="logname" value="<%=logname%>" />
<jsp:setProperty name= "login" property="password" value="<%=password%>" />
<%
message=login.getMessage();
if(message==null)
{message="";
}
}
%>
<% if(!(session.isNew()))
{ if(message.equals("ok"))
{ String str=response.encodeURL("buybook.jsp");
response.sendRedirect(str);
}
else
{out.print(message);
}
}
%>
</Body>
</HTML>
订购页面使用的beans (该beans负责查阅用户准备订购的图书)
BuyBook.java:
import java.sql.*;
public class BuyBook
{ long id=0;
String order_number,
book_name;
Connection con;
Statement sql;
ResultSet rs;
public BuyBook()
{ //加载桥接器:
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
}
//设置属性值、获取属性值的方法:
public void setId(long n)
{id=n;
}
public long getId()
{return id;
}
public void setBook_name(String name)
{ book_name=name;
}
public String getBook_name()
{return book_name;
}
public void setOrder_number(String number)
{ order_number=number;
}
public String getOrder_number()
{return order_number;
}
//通过书的id号查询数据库的book表:
public StringBuffer getMessageBybook_id()
{
StringBuffer buffer=new StringBuffer();
try{
con=DriverManager.getConnection("jdbc:odbc:shop","","");
sql=con.createStatement();
String condition="SELECT * FROM book WHERE id = "+id;
rs=sql.executeQuery(condition);
buffer.append("<Table Border><FONT size=1> ");
buffer.append("<TR>");
buffer.append("<TH width=50>"+"<Font size=1>"+"id"+"</FONT>");
buffer.append("<TH width=50>"+"<Font size=1>"+"订购号"+"</FONT>");
buffer.append("<TH width=70>"+"<Font size=1>"+"书名"+"</FONT>");
buffer.append("<TH width=60>"+"<Font size=1>"+"作者"+"</FONT>");
buffer.append("<TH width=60>"+"<Font size=1>"+"出版社"+"</FONT>");
buffer.append("<TH width=50>"+"<Font size=1>"+"出版时间"+"</FONT>");
buffer.append("<TH width=20>"+"<Font size=1>"+"价钱"+"</FONT>");
buffer.append("<TH width=50>"+"<Font size=1>"+"分类"+"</FONT>");
buffer.append("</TR>");
while(rs.next())
{ order_number=rs.getString(2);
book_name=rs.getString(3);
String 作者=rs.getString(4);
String 出版社=rs.getString(5);
Date 时间=rs.getDate(6);
String 价格=rs.getString("price");
String 分类=rs.getString("category");
buffer.append("<TR>");
buffer.append("<TD >"+"<Font size=1>"+rs.getLong(1)+"</FONT>");
buffer.append("<TD >"+"<Font size=1>"+order_number+"</FONT>");
buffer.append("<TD >"+"<Font size=1>"+book_name+"</FONT>");
buffer.append("<TD >"+"<Font size=1>"+作者+"</FONT>");
buffer.append("<TD >"+"<Font size=1>"+出版社+"</FONT>");
buffer.append("<TD >"+"<Font size=1>"+时间+"</FONT>");
buffer.append("<TD >"+"<Font size=1>"+价格+"</FONT>");
buffer.append("<TD >"+"<Font size=1>"+分类+"</FONT>");
buffer.append("</TR>");
}
buffer.append("</TABLE>");
buffer.append("</FONT>");
con.close();
return buffer;
}
catch(SQLException e)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -