web课程设计Word格式.docx
- 文档编号:22090855
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:25
- 大小:1.43MB
web课程设计Word格式.docx
《web课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《web课程设计Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
张怀平,密码:
yishaoku等。
系统功能流程图如下:
图1
系统角色设计
该用户治理系统的角色要紧由两类,一般用户角色和治理员角色。
其中一般用户又能够分为未注册用户,和已经注册用户。
两类用户各自的权限如下:
用户:
图2
治理员:
图3
要紧业务流程设计
用户注册
图4
用户登岸
图5
用户修改密码
图6
治理员添加用户
图7
治理员修改用户信息
图8
治理员删除用户
图9
二、数据库表设计
本系统主若是模拟用户的信息治理,要紧涉及两张表,一般用户信息表t_user,治理员信息表t_manager。
一般用户信息表如下:
表2
字段名
数据类型
长度
含义
备注
user_id
varchar
11
用户账号
主码
user_name
50
用户姓名
非空
password
用户密码
contact_tel
20
联系电话
电子邮箱
create_date
datetime
无
申请日期
一般用户信息表t_user的ER图如下:
图10
治理员信息表如下:
表3
name
治理员信息表ER图如下:
图11
3、功能实现
一般用户信息表和治理员信息的表通过两个JavaBean来封装,代码如下:
一般用户:
packageclassUser{
privateStringuserId;
privateStringuserName;
privateStringpassword;
privateStringcontactTel;
privateStringemail;
privateDatecreateDate;
publicStringgetContactTel(){
returncontactTel;
}
publicvoidsetContactTel(StringcontactTel){
=contactTel;
publicDategetCreateDate(){
returncreateDate;
publicvoidsetCreateDate(DatecreateDate){
=createDate;
publicStringgetEmail(){
returnemail;
publicvoidsetEmail(Stringemail){
=email;
publicStringgetPassword(){
returnpassword;
publicvoidsetPassword(Stringpassword){
=password;
publicStringgetUserId(){
returnuserId;
publicvoidsetUserId(StringuserId){
=userId;
publicStringgetUserName(){
returnuserName;
publicvoidsetUserName(StringuserName){
=userName;
}
治理员如下:
packageclassManager{
privateStringname;
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
=name;
整个系统对数据库的操作是一个重要的环节,因为对数据库的操作是一个耗资源的操作,因此连接数据库和操作数据库的代码要合理设计,本系统对数据库操作代码如下:
package.*;
publicclassDB{
publicstaticConnectiongetConn(){
Connectionconn=null;
try{
("
"
);
conn=("
jdbc:
}catch(ClassNotFoundExceptione){
();
}catch(SQLExceptione){
returnconn;
publicstaticvoidcloseConn(Connectionconn){
if(conn!
=null){
conn=null;
publicstaticvoidcloseStmt(Statementstmt){
if(stmt!
stmt=null;
publicstaticvoidcloseRs(ResultSetrs){
if(rs!
rs=null;
上面的代码是连接数据库效劳器,查询效劳,修改效劳和关闭数据库连接的代码。
接下来介绍该系统具体实现对用户表的CRUD(增删改查)的操作。
代码如下:
具体操作用户信息表的代码:
packageclassUserDao4MySqlImplimplementsUserDao{
publicvoidaddUser(Connectionconn,Useruser){
Stringsql="
insertintot_user(user_id,user_name,password,contact_tel,email,create_date)"
+"
values(?
?
)"
;
PreparedStatementpstmt=null;
pstmt=(sql);
(1,());
(2,());
(3,());
(4,());
(5,());
(6,newTimestamp().getTime()));
}finally{
(pstmt);
publicvoiddeleteUsers(Connectionconn,String[]userIdList){
StringBuffersbfSql=newStringBuffer();
for(inti=0;
i<
;
i++){
'
).append(userIdList[i]).append("
).append("
"
deletefromt_userwhereuser_idin("
+(0,()-1)+"
Statementstmt=null;
stmt=();
(sql);
(stmt);
(conn);
publicListfindAllUserList(){
select*fromt_userorderbyuser_id"
ResultSetrs=null;
ListuserList=newArrayList();
conn=();
rs=(sql);
while()){
Useruser=newUser();
user_id"
));
user_name"
password"
contact_tel"
email"
create_date"
(user);
(rs);
returnuserList;
publicUserfindUserById(StringuserId){
select*fromt_userwhereuser_id=?
Useruser=null;
(1,userId);
rs=();
if()){
user=newUser();
returnuser;
publicUseruserSearch(StringuserId,Stringpassword){
andpassword=?
(2,password);
publicvoidmodifyUser(Connectionconn,Useruser){
updatet_usersetuser_name=?
password=?
contact_tel=?
email=?
whereuser_id=?
操作治理员的代码:
packageclassManagerDao4MySqlImplimplementsManagerDao{
publicManagerfindManager(Stringname,Stringpassword){
select*fromt_managerwherename=?
Managermanager=null;
(1,name);
manager=newManager();
name"
returnmanager;
在网页之间跳转和将数据写入数据库中等操作都会设计利用中文的问题,为了专门好的解决中文乱码问题,本系统利用了Filter(过滤器)来处置中文乱码。
packageclassAotoriFilterimplementsFilter{
publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
FilterChainfilterChain)throwsIOException,ServletException{
HttpServletRequesthq=(HttpServletRequest)request;
HttpServletResponsehp=(HttpServletResponse)response;
text/html;
charset=GBK"
GBK"
(request,response);
publicvoiddestroy(){
publicvoidinit(FilterConfigarg0)throwsServletException{
过滤器在中的配置如下:
<
filter>
<
filter-name>
filter<
/filter-name>
filter-class>
url-pattern>
/*<
/url-pattern>
/filter-mapping>
在用户注册的时候和治理员在添加用户修改用户信息的时候,都第一通过JavaScript验证数据格式正否正确,正确才向效劳器提交信息,关键验证代码如下:
scripttype="
text/javascript"
>
functioncheckCount(Node){
varvalue=;
ontcolor("
green"
returntrue;
}else{
red"
returnfalse;
functioncheckPassword(Node){
varspanNode=("
userPassword"
varreg=/^[\w]{6,}$/i;
if(reg)){
="
密码格式正确"
.fontcolor("
密码很多于6位"
functioncheckRePassword(Node){
rePassword"
varpassValue=("
pass"
).value;
if(passValue==value&
&
passValue!
="
){
密码正确"
两次密码不一致"
functioncheckUserName(Node){
userName"
if(value!
用户名格式正确"
用户名不能为空"
functioncheckTel(Node){
tel"
varreg=/^[0-9]{5,}/i;
电话号格式正确"
电话号格式不正确"
functioncheckEmail(Node){
varreg=/^\w+@\w+(\.\w+)+$/;
邮箱格式正确"
邮箱格式不正确"
functioncheckAll(){
varformNode=[0];
with(formNode)
{
if(checkCount(userCount)&
checkEmail(email)&
checkPassword("
)&
checkRePassword("
checkTel("
checkUserName("
))
}else
/script>
系统功能截图:
后台登岸界面:
图12
后台治理页面:
图13
前台用户登岸界面:
后台治理员添加用户界面:
图14
用户注册界面:
图15
4、个人总结本系统尽管功能有限,但也是我依照一样软件的开发流程一步一步进行的,从需求分析,到数据库的设计,再到具体编码的实现,再到测试运行。
循序渐进的进行,让我再一次感受到了软件开发的严谨性和标准性。
在具体开发进程中也碰到了很多问题,可是借助于互联网络最终都取得了解决。
该系统功能不是很完善,可是我在设计的时候考虑到了可扩展行,能够很方便的在该系统上扩展新的功能,我提供了很多接口,便于以后扩展利用。
因为最近在看设计模式的书,因此在编写具体代码的利用,我也成心识的利用了一些设计模式,比如:
单例模式,工厂模式,接口模式等等。
利用这些设计模式能够让该系统具有更好的扩展性和可保护性。
固然本系统也还存在一些不足,比如权限问题,若是一个用户直接访问治理员登岸成功的页面的话,那么成功进入。
这时就需要实现权限治理,那个能够利用一个Filter来实现,在Filer中判定用户是不是有访问某一个页面的权限,有的话就许诺访问,没有的话就自动跳转到登岸页面。
总之,这次课设让我学到很多东西,有专门大的收成。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- web 课程设计