JSP作业课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
--QQ登陆系统
学院
JSP大作业报告
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目 QQ登陆系统
学生姓名 专业班级 计算机10-1
指导教师 职称 讲师
所在单位
教研室主任
完成日期 2013年5月22日
摘 要
QQ是腾讯公司开发的一款基于Internet的即时通信软件。腾讯QQ作为当下中国最流行的聊天工具之一,必有他成功的理由。所以我希望基于JSP能模仿QQ的登陆系统,一方面向腾讯QQ学习他的登陆界面,以便日后可以把它成功的运用到网页游戏或者是网站的一些会员登录中,另一方面也可以帮我巩固在JSP课上学习到的知识。
用JSP编辑的网站中,一般要求用户提供登陆该网站的用户名称和密码等信息,在注册页面中用SQL语句在数据库中查询该用户名和密码是否存在于数据库中。该系统用到的关键技术,使用JSP编程、建立数据库、采用HTML超文本链接等编程技术。
关键字:QQ登录系统;JSP编程;数据库;学习
目 录
1(总体设计 ..........................................................................................................................1
1.1本系统的主要功能 .......................................................................................................................... 1
1.2系统包含的类及类之间的关系 ...................................................................................................... 1
1.3java源文件及其功能 ...................................................................................................................... 1 2(详细设计 ..........................................................................................................................1
2.1类AddBean ...................................................................................................................................... 1
2.2类QueryBean ................................................................................................................................... 2
2.3类Query ........................................................................................................................................... 2
2.4类ReadFiles ..................................................................................................................................... 3
2.5类RandomArr .................................................................................................................................. 3 3( 运行效果 ........................................................................................................................4
3.1 系统登陆界面 ................................................................................................................................. 4
3.2 更改密码界面 ................................................................................................................................. 5
3.2 个人主界面 ...................................................................................................................................... 5
5 3.2 注册信息界面 ..................................................................................................................................参考文献....................................................................................................................................................... 6 附录1 软件源程序 ................................................................................................................................. 7 课程设计实践总结: ............................................................................................................................. 16
大连科技学院课程设计报告
1(总体设计
1.1本系统的主要功能
本系统为QQ登陆系统仿照QQ的登陆界面完成学习目的,功能包括了帐号、密码的
注册、清空及登录,而注册界面包含了帐号、密码、姓名、年龄等信息,还加入了修改
密码的界面,简单地说就是QQ登陆界面的简化版本。
1.2系统包含的类及类之间的关系
本系统共包括5个java源文件,7个jsp文件
1.3java源文件及其功能
1.AddBean.java
该文件用于添加用户编号、密码、年龄、名字等信息
2. QueryBean.java
该文件为查询用户信息组件的文件,通过QueryBean扩展查询功能
3. Query.java
该文件为查询用户信息文件
4. ReadFiles.java
该文件为读取文件
5. RandomArr.java
该文件随机生成帐号的文件
2(详细设计
2.1类AddBean
(1)成员变量见
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
2-1
表2-1 主要成员变量(属性)
成员变量描述 变量类型 名称
用户名及帐号 String name,number
年龄、密码、添加信息 Int age,pass,addMessage
1
大连科技学院课程设计报告 (2)方法见表2-2
表2-2 主要方法
方法名 功能 备注
AddBean() 添加组件 扩充添加程序
setName() 设置用户名 字符串型
setAge() 设置年龄 整型
setPass() 设置密码 整型
setNumber() 设置账号 字符串型
getAddMessage() 获取添加信息 注册 (3)源代码见文件AddBean.java
2.2类QueryBean
(1)成员变量见表2-3
表2-3 主要成员变量
成员变量描述 变量类型 名称
数据库名、密码、用户名、表名 String databaseName="",secret="",user="",tableName=""
(2)方法见表2-4
表2-4 主要方法
方法名 功能 备注
QueryBean() 查询组件 JavaBean组件类似COM组件
getQueryResult() 获取查询结果 将获取的信息汇总
setDatabaseName() 设置数据库名 设置需要传参
getDatabaseName() 获取数据库名 获取需要return返回
setTableName() 设置表名
getTableName() 获取表名
以下设置与获取的描述不再赘 setSecret() 设置密码
余,参考数据库设置与获取 getSecret() 获取密码
setUser() 设置用户名
getUser() 获取用户名
(3)源代码见文件QueryBean.java
2.3类Query
(1)成员变量见表2-5
表2-5 主要成员变量(属性)
2
大连科技学院课程设计报告
成员变量描述 变量类型 名称
帐号 String number
密码及新密码 Int pass,newpassword (2)方法见表2-6
表2-6 主要方法
方法名 功能 备注
setNumber() 设置账号 将参数传参到帐号
read() 读取 读取信息
setNewpassword() 设置新密码 将参数传参到新密码 (3)源代码见文件Query.java
2.4类ReadFiles
(1)成员变量见表2-7
表2-7 主要成员变量(属性)
成员变量描述 变量类型 名称
变量名、内容 String path,content (2)方法见表2-8
表2-8 主要方法
方法名 功能 备注
setPath() 设置变量名 字符串型
getContent() 获取内容 字符串型 (3)源代码见文件ReadFiles.java
2.5类RandomArr
(1)成员变量见表2-9
表2-9 主要成员变量(属性)
成员变量描述 变量类型 名称
帐号 String number
10位数组用作存储帐号 int [] arr arr[i]
随机变量 Int i (2)方法见表2-10
3
大连科技学院课程设计报告
表2-10 主要方法
方法名 功能 备注
getNumber() 获取账号 数组中的数字以字符串型作为账号
Math.random() 随机生成一个0~1之间的数 (int)(Math.random()*10)通常用作生成整数
(3)源代码见文件RandomArr.java
3( 运行效果
3.1 系统登陆界面
图3-1 系统登陆界面
4
大连科技学院课程设计报告 3.2 更改密码界面
图3-2 更改密码界面 3.2 个人主界面
图3-2 个人主界面
3.2 注册信息界面
5
大连科技学院课程设计报告
图3-2 注册信息界面
参考文献
[1] 程志艳等《JSP实用简明教程》,清华大学出版社,2005.12 [2] 李曙光《JSP开发实例完全剖析》,中国电力出版社,2006.4 [3] 孙延鹏等《Web程序设计----JSP》,人民邮电出版社,2008.5 [4]张阳等《Java Web开发实践教程----从设计到实现》,清华大学出版社,2008.9
[5] 刘彬编著,JSP数据库高级教程,清华大学出版社,2006
6
大连科技学院课程设计报告
附录1 软件源程序
package tom.jiafei;
import java.sql.*;
public class AddBean
{
int age,pass,addMessage;
String name,number;
public AddBean()
{ try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(Exception e){ }
}
public void setName(String s)
{ name=s.trim();
try{ byte bb[]=name.getBytes("ISO-8859-1");
name=new String(bb,"gb2312");
}
catch(Exception e){}
}
public void setAge(int n)
{ age=n;
}
public void setPass(int n)
{ pass=n;
}
public void setNumber(String s)
{ number=s;
}
public int getAddMessage()throws Exception{
String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=factory";
String user="sa";
String password="sa";
Connection con=DriverManager.getConnection(uri, user, password);//连接
Statement st=con.createStatement();//创建语句
String sql="insert into qq (number,pass,name,age)values('"+number+"',"+pass+",'"+name+"',"+age+")";
addMessage=st.executeUpdate(sql);
st.close();
con.close();
return addMessage;
}
}
7
大连科技学院课程设计报告
/*利用Random生成10个数且第一个数不为0*/
package tom.jiafei;
import java.io.*;
public class RandomArr
{
private StringBuilder sb=new StringBuilder();
String number;
public String getNumber()
{
int [] arr = new int [10];
int i=0;
while(i
");
8
大连科技学院课程设计报告
content=sb.toString();
}
return content;
}
}
package tom.jiafei;
import java.sql.*;
public class Query {
String number;
int pass,newpassword;
public void setNumber(String s)
{
number=s;
}
public void setNewpassword(int s)
{
newpassword=s;
}
public int read() throws Exception
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=factory";
String user="sa";
String password="sa";
//建立连接
Connection con=DriverManager.getConnection(uri, user, password);
//创建语句
Statement st=con.createStatement();
ResultSet rs=st.executeQuery
("SELECT number,pass,name,age FROM qq where number='"+number+"'");
while(rs.next())
{
pass=rs.getInt(2);
}
return pass;
}
public int update() throws Exception{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=factory";
String user="sa";
String password="sa";
Connection con=DriverManager.getConnection(uri, user, password);//连接
9
大连科技学院课程设计报告
Statement st=con.createStatement();//创建语句
String sql="update qq set pass='"+newpassword+"' where number='"+number+"'";
int i=st.executeUpdate(sql);
st.close();
con.close();
return i;
}
}
package tom.jiafei;
import java.sql.*;
public class QueryBean
{ String databaseName=""; //数据库名
String tableName=""; //表名
String user="" ; //用户
String secret="" ; //密码
StringBuffer queryResult; //查询结果
public QueryBean()
{ queryResult=new StringBuffer();
try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(Exception e) {}
}
public void setDatabaseName(String s)
{ databaseName=s.trim();
queryResult=new StringBuffer();
}
public String getDatabaseName()
{ return databaseName;
}
public void setTableName(String s)
{ tableName=s.trim();
queryResult=new StringBuffer();
}
public String getTableName()
{ return tableName;
}
public void setSecret(String s)
{ secret=s.trim();
queryResult=new StringBuffer();
}
public String getSecret()
{ return secret;
10
大连科技学院课程设计报告
}
public void setUser(String s)
{ user=s.trim();
queryResult=new StringBuffer();
}
public String getUser()
{ return user;
}
public StringBuffer getQueryResult()
{ Connection con;
Statement sql;
ResultSet rs;
try { queryResult.append("");
String uri= "jdbc:sqlserver://127.0.0.1:1433;DatabaseName="+databaseName;
String id=user;
String password=secret;
con=DriverManager.getConnection(uri,id,password);
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null,null,tableName,null);
int 字段个数=0;
queryResult.append("");
while(rs1.next())
{ 字段个数++;
String clumnName=rs1.getString(4);
queryResult.append(""+clumnName+" | ");
}
queryResult.append("
");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM "+tableName);
while(rs.next())
{ queryResult.append("");
for(int k=1;k<=字段个数;k++)
{ queryResult.append(""+rs.getString(k)+" | ");
}
queryResult.append("
");
}
queryResult.append("
");
con.close();
}
catch(SQLException e)
{ queryResult.append("请输入正确的用户名和密码");
}
return queryResult;
}
11
大连科技学院课程设计报告
}
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page contentType="text/html;charset=GB2312" %>
登录成功
<%@ page contentType="text/html;charset=GB2312" %>
12
大连科技学院课程设计报告
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="tom.jiafei.Query" %>
<%
String str1=request.getParameter("num"); //重定向
String str2=request.getParameter("password");
if(str1.length()==0||str2.length()==0)
{
response.sendRedirect("In.jsp");
}
else
{
Query.setNumber(str1);
int pass=Query.read();
int password=Integer.parseInt(str2);
if(pass==password)
{
out.println("登录成功"+"
");
}
else
out.println("密码错误,请重新登录");
}
%>
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="tom.jiafei.AddBean" %>
<%!
public static String getNumber()
{
StringBuilder sb=new StringBuilder();
int [] arr = new int [8];
String number=null;
int i=0;
while(i
<%
String number=getNumber();
String Pass=request.getParameter("pass");
int pass=Integer.parseInt(Pass);
String name=request.getParameter("name");
String Age=request.getParameter("age");
int age =Integer.parseInt(Age);
AddBean.setPass(pass);
AddBean.setName(name);
AddBean.setAge(age);
AddBean.setNumber(number);
%>
<%
int count;
count=AddBean.getAddMessage();
if(count>0)
out.println("注册成功"+"
");
out.println("您的号码是:"+number+"
");
%>
返回登录界面
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="tom.jiafei.Query" %>
<%
String str1=request.getParameter("num");
String str2=request.getParameter("new");
String str3=request.getParameter("old");
if(str1.length()==0||str2.length()==0||str3.length()==0)
{
response.sendRedirect("update.jsp");
}
else
{
Query.setNumber(str1);
int newpassword=Integer.parseInt(str2);
Query.setNewpassword(newpassword);
int pass=Query.read();
int password=Integer.parseInt(str3);
if(pass==password)
{
int i=Query.update();
if(i>0)
{
out.println("修改成功"+"
");
}
else
out.println("修改失败");
}
else
out.println("密码错误,请重新输入"+"
");
}
%>
返回登录界面
返回密码修改界面
15
大连科技学院课程设计报告
课程设计实践总结:
课程设计总结:
经过两周时间的努力终于完成了这次的jsp课程设计,在本次设计之前,自己对之前的知识基本忘完了,并且在此之前我们没有对jsp平台进行过什么练习,这次结合了数据库一起完成了QQ登录系统。基本上符合了课程设计的要求。
回想这两周来的努力结果,自己感到非常的欣慰,不仅锻炼了我的耐心,同时让我更加注意一些细节的东西(比如代码的编写是否正确),现在也懂得了改一些代码,运用到自己的系统来,在编程过程中,我还学会了在网络上寻找解决方法,系统能够运行更加带给我无限的成就感,让我更加喜欢上了编程。
教师评语:
成绩评定:
指导教师签字:
年 月 日
16