基于java web的博客平台(五)
(4)文章类型
文章类型应该没什么特殊之处,和文章的增删查改是一样的方法,只不过文章是对于文章的数据库,文章类型是对于文章类型的表,它的操作交给了ArticleTypeAction处理。
(5)留言的增删查改
留言的增删查改,有很多地方要处理,和文章的不一样,这些都写在了留言功能的设计哪一篇博客了,它的操作交给了WordAction处理。
(6)朋友的增删查改
朋友的增删查改的话,也是和文章的处理方法一样,不过,它的数据库的设计就不一样了,我们新加了个朋友表。
当我们添加朋友时,我们有个表单,在这个表单里面好友的姓名、性别、好友的OICQ,主要是好友的姓名。
当我们提交表单的时候交给了FriendAction处理,
(7)相册的增删查
相册的增删查改,这里的话涉及到一个上传文件的功能,这个功能也在其它博客里面说了。我们把图片上传后,数据库里面存的是图片放置的地址。所以我们查询的时候,就是把这些图片的地址查出来,然后用img标签把这些图片显示出来:
<img src="<%=URL%>/<%=photo_addr%>" title="<%=photo_info %>">
这里的photo_addr(这个photo_addr包含了文件名字),即相对于这个博客系统根目录的地址就是图片的地址,这个地址在前面添个这个博客系统网络地址的URL,即可访问到这一张图片了。
且相册的管理的操作也是交给PhotoAction处理的。
然后图片没有修改了,只有删除,我们的删除也是先到的PhotoList,然后这个PhotoList显示图片列表,我们在每个图片后面加一个删除的链接:
<a href="<%=URL%>/PhotoAction.action?action=delete&id=<%=photoBean.getId()%>">删除图片</a>
我们给PhotoAction传递action为delete和id是这张图片的id的参数。
然后我们看PhotoAction里面处理action为delete的函数deletePhoto
public String deletePhoto(HttpServletRequest request, HttpServletResponse response) { int id = Common.strToint(request.getParameter("id")); // 获得目前登录的博主的id HttpSession session = request.getSession(); MasterBean master = (MasterBean) session.getAttribute("masterBean"); int masterID = master.getId(); PhotoDao photoDao = new PhotoDao(); PhotoBean photoBean = photoDao.queryPhotoByID(id); boolean flag = photoDao.operationPhoto("delete", photoBean); // 设置文件存储路径,获取该类PhotoAction.Java在web项目下的路径 URL url_photoAction = this.getClass().getResource("PhotoAction.class"); System.out.println(url_photoAction); // 将URL类型的路径转换成String类型,方便后面利用indexOf方法对路径进行截取 String str_url_photoAction = url_photoAction.toString(); System.out.println(str_url_photoAction); // 由于url_photoAction的路径是D:\JavaWeb\tomcat\wtpwebapps\MyBlog\WEB-INF\classes\com\MyBlog\action_implements // 自己希望存储的路径为D:\JavaWeb\tomcat\wtpwebapps\MyBlog\images\photo // 因此需要进行路径截取,以及配置,找到所需路径的最后一个位置的坐标 int pos = str_url_photoAction.indexOf("WEB-INF"); // 通过pos值。截取,先获得web服务器所在的根路径 String rootPath = str_url_photoAction.substring(6, pos); // 文件路径 String filePath = rootPath + photoBean.getPhotoAddr(); // 输入要删除的文件位置 File file = new File(filePath); // 定义标志位f,判断文件是否删除成功 boolean f = false; if (file.exists()) { // 从服务器里面删除文件 f = file.delete(); } else { // 若文件不存在,则证明不用删除,直接返回true f = true; } if (flag && f) { String url = this.adminSelectPhoto(request, response); return url; } return "error.jsp"; }
这里我们首先取出传过来的id参数,
int id = Common.strToint(request.getParameter("id"));
我们先把这个图片的信息从数据库的表里面获取出来,由photoDao处理:
PhotoBean photoBean = photoDao.queryPhotoByID(id);
然后也是由photoDao类来处理删除操作,即把这个图片在数据库里面删除,photoDao.operationPhoto("delete", photoBean);
但是,我们光这样还不行,还要在硬盘里面把这个图片文件删掉,所以我们先获取这个博客系统所在的跟目录,即在硬盘中的位置:rootpath,然后再从photoBean里面获取这个文件在根目录下存储的地址photoBean.getPhotoAddr()(这个PhotoAddr包含了文件名字),即相对于根目录的地址。最后得到这个文件的实际地址:
String filePath = rootPath + photoBean.getPhotoAddr();
最后我们才能根据这个filePath把这个文件删除。
- 基于java web的博客平台(六)
- 基于MATLAB GUI的图像处理软件平台的开发(转自深寒的博客)
- 基于windows平台Git+GitHub+Hexo搭建个人博客(一)
- Java Web模拟项目 购物平台 基于ssm框架 mysql数据库 前后端开发
- 基于laravel 的博客平台 -- Vuedo
- Ghost - 基于 Node.js 构建的开源博客平台
- 七步,搭建基于Windows平台完美Jekyll博客环境
- 基于容器技术在5分钟内一键搭建WordPress博客平台
- 基于Metaweblog API 接口一键发布到国内外主流博客平台
- 基于S2SH组合框架搭建的博客平台
- 基于Metaweblog API 接口一键发布到国内外主流博客平台
- 基于LAMP的博客平台搭建
- 基于Roller的围棋博客平台
- 使用WordPress搭建基于LAMP架构的博客平台
- Java毕业设计------基于java web的在线教学交流平台
- 基于LNMP搭建Typecho博客平台
- 基于.NET平台的分层架构实战(四)——实体类的设计与实现
- ASP.NET5 REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
- Qualcomm平台下基于QSEE的指纹识别方案移植之二 驱动移植
- 基于.NET平台的分层架构实战(七-外一篇)——对数据访问层第一种实现(Access+SQL)的重构