您的位置:首页 > 编程语言 > Java开发

基于java web的博客平台(五)

2016-03-15 17:23 239 查看

      (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把这个文件删除。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: