web基础编程-图片管理网站

                                                                                     图片艺廊管理网站说明

  • 数据库设计:

主要由三张表:用户表、图片表、用户图片对应关系表。

  • 用户表:

主要字段如下:

用户ID     整型    主键    自增长;

用户姓名   字符型  ;

用户密码   字符型  ;

  • 文件表:

 主要字段如下:

文件ID     整型    主键    自增长;

        文件名     字符型;

        文件类别   字符型;

  • 用户图片对应关系表:

  主要字段如下:

         文件ID    整形;

         用户姓名   字符型;

         主键(文件ID,用户姓名);

         外键 文件ID参照文件表(文件ID),用户姓名参照用户表(用户姓名);

  •  网站设计前端与后端设计

           本网站后端主要是由dao层、filter层、javaBean层、servletHandle层、untilBean层组成,前端主要是由css层、error层、images层、personalIndex层、index.jsp、regist.Jsp组成。

后端详细说明:

  1. dao层:存放操作数据库java类,主要组成如下。

    ImageDao:实现对Image表的增删改查功能,涉及到与user_file表的组合查询,和数据库分页技术.

userDao:实现对user表的增删改查功能,涉及到与user_file表的组合查询。

  1. Filter层:用来处理REQUEST、FORWARD对JSp、servlet发起的每一次请求或请求转发的过滤,用来重新设置,请求与响应的contenType和编码,防止JSp、servlet之间转发、重定向时而会引起乱码的现象。
  2. javaBean层:这里要是实体bean:UserBean、IamgeBean与关系Bean:User_iamgeBean。用来dao层向servlet层传数据时对数据进行包装。
  3. servletHandle层:用来向前台发送数据,处理各种业务逻辑。

AddImageServlet:处理页面增加图片的请求,向数据库中插入记录,并向jsp返回结果

deleteImageServlet:处理页面删图片的请求,向数据库中删除记录,并向jsp返回结果

LoginImageServlet:处理页面加载图片的请求,从数据库中获取记录,并向jsp返回结果

UpdateUserPass:处理页面修改密码的请求,向数据库中修改记录,并向jsp返回结果

UserLoginServlet:处理页面加载用户的请求,从数据库中获取记录,并向jsp返回结果

UserRegistServlet:处理页面注册用户的请求,向数据库中插入记录,并向jsp返回结果

  1. untilBean层:采用工厂设计模式写了一个对数据库操作的工具类;主要是数据库的链接和操作数据库的静态方法。

前端详细说明:

  1. css层:主要是存放JSP页面的css样式表,每一张jsp对应一张样式表
  2. Error层:用来存放404(服务器找不到请求的网页)与500(服务器内部错误)发生时,所展示图片,当服务器错误时来给用户以更好地体验效果。
  3. images层:用来存放jsp页面上所用到的图片。
  4. personalIndex层:主要是存放网页主页上jsp,和img层;详细说明如下:

   AddImage.jsp:增加图片的界面

   PersonalIndex.jsp:用户主页,照片展示页面

Update Pass.jsp:用户修改密码界面

Img层:用来存放用户所上传的图片。

  1. index.jsp:登陆界面
  2. Regist.jsp:注册界面

 

  • 网站制作过程遇到的困难
  1. 在网页制作过程中,涉及到各种差错处理、页面加载数据等等:例如用户名为空、用户名密码不匹配、加载数据失败等等一系列错误信息和图片链表等数据该如何在JSP中显示,首先链表的显示就要用到循环语句,而java老师常说jsp中尽量不要嵌入java代码。

于是我就想到了用EL表达式,而循环控制用到java标准标签库相关知识;又因为Servlet层向jsp层传的参数作用在不同的范围有session层、request层的数据,而el表达式恰好很方便的能解决这些问题。

  1. 在制作过程中,由于要求用到数据库分页技术,那么这将涉及到大量的数据,这些数据该如何展示,第一次想到的是页面分页展示,却又对如何分页展示没有头绪。

   经历过大量试探之后,想到了一个数据库分页展示的方法,第一次加在数据的时候;首先将查询的结果集缓存到本地,用CachedRowSet将rs中的数据取出来,规定好一页15条记录。采用分页查询获取记录的前15条;封装成对象链表,向前台传入传入链表并展示。当点击下一页的时候。从servlet层取出第二页数据并展示,中间涉及到很多差错控制逻辑。

  1. 网页制作过程中有时遇到乱码问题。比如用response.getWriter()方法展示一些文字就会乱码,每次都要设置request的编码,和response的contenType很麻烦。

于是就想到了用过滤器来过滤每一次请求,并为其设置编码格式;和resonpse的contentType。

  1. 网页图片上很多的类别,刚开始不知道该如何按类别来加载这些图片,如何在servlet层处理这些逻辑。

   最后处理是在IamgeDao中增加一个按类别、按用户名加载图片的方法,在servlet层进行调用,根据a链接传来的参数来加载图片数据传到jsp层。

 

注意:演示视频中需要大量的数据需要插入数据库。请先把personal/Img文件中存在的图片全部删除后在进行操作!

 

注:工程源码已上传至csdn

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值