struts2+hibernate学习之实现网站留言板和好友互相添加功能

news/2024/5/12 1:05:44/文章来源:https://blog.csdn.net/qq442270636/article/details/72804333

前面我将自己添加好友的思路,以及测试做好了,这里放在一起来回顾自己的思路和中间遇到问题:先看结果,╭(╯^╰)╮界面是有点说不过去。。。。


这里不再说留言板的显示具体实现过程,留言表有两个外键,对应用户表的ID,选择好友进行留言,这个功能以前回顾过,这里不再赘述。

添加好友,前天自己下午测试成功但是中间过程太繁琐。今天整理出来。先说说我项目中缺陷,我没有做拒绝的功能,只有同意,,还有添加好友时,没有判断该ID是否存在就直接添加,这些问题前者是我我觉得我想不够好没写,后者是因为只是个人测试就没去实现。还有一个重复添加的问题我也没有解决。

①建friend表:里面有编号,发送人编号,接收人编号,以及一个状态判断state属性(判断是否成为好友)

②Dao层的方法:


③action调用这些方法来实现这些功能:

package action;import java.util.ArrayList;
import java.util.List;import dao.MessageDao;
import dao.ReachfriendDao;
import domain.Friend;
import domain.Message;
import domain.User;public class AddAction extends SuperAction {private User user;private int id;private ReachfriendDao dao=new ReachfriendDao();private MessageDao mdao=new MessageDao();public String showf(){if(user==null){user=(User) session.getAttribute("user");}List<Friend> list=dao.showf(user.getUser_id());System.out.println("好友数量:"+list.size());session.setAttribute("list3", list);return "showf";}public String agree(){if(user==null){user=(User) session.getAttribute("user");}System.out.println("huoquID"+user.getUser_id());List<Friend> list=dao.showN(user.getUser_id());System.out.println("record:"+list.size());session.setAttribute("list2", list);return "agree";}public String agree2(){if(user==null){user=(User) session.getAttribute("user");}dao.agree2(id);return "agree2";}public String add(){int idadd=Integer.parseInt(session.getAttribute("id").toString());dao.add(id,idadd);return "add";}public String text(){if(user==null){user=(User) session.getAttribute("user");}List<Message> list=mdao.showM(user.getUser_id());//liuyanList list1=new ArrayList();for(int i=0;i<list.size();i++){list1.add(list.get(i).getUser().getUser_name());	}session.setAttribute("list1", list1);if(dao.avil(user.getUser_id(), user.getUser_pwd())){session.setAttribute("id", user.getUser_id());System.out.println("id"+user.getUser_id());User user1= dao.reach(user.getUser_id());//ziliaoSystem.out.println("jilu"+list.size());int n=dao.result(0, user.getUser_id());//newscontext.put("n", n);session.setAttribute("list", list);session.setAttribute("user", user1);context.put("user", user1);return "text";}elsereturn INPUT;}
public User getUser() {return user;
}
public void setUser(User user) {this.user = user;
}
public int getId() {return id;
}
public void setId(int id) {this.id = id;
}}


④jsp页面

<%@page import="dao.MessageDao"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>实际项目</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><table border="1" width="100%" cellspacing="20" height="2%"><!-- 第一行 --><tr><td><font style="color:green; font-size: 40px">qq442270636:</font></td><td align="left" colspan="5" ><a href="${pageContext.request.contextPath }/text_agree.action">好友请求+</a><s:property value="#n"/> <s:iterator value="%{#session.list2}" status="s"><a href="${pageContext.request.contextPath }/text_agree2.action?id=<s:property value="send_id" />">同意账号为:<s:property value="send_id" />的请求</a></s:iterator></td></tr><tr align="center"><td rowspan="4" width="20%"><img src="${pageContext.request.contextPath }/image/女神.jpg" width="300px" height="500px"></img></td><td height="3%" width="15%">个人资料:</td><td>账号:<s:property value="#user.user_id" /></td><td>姓名:<s:property value="#user.user_name" /></td><td>个性签名:<s:property value="#user.user_sign" /></td></tr><tr><form action="text_add" method="post"><td align="right" height="2%"><input type="text" name="id"></td><td><input type="submit" value="加好友"></td></form><td colspan="3"><a href="text_showf.action?id=<s:property value="#user.user_id" /> ">我的好友</a><s:iterator value="%{#session.list3}" status="s">好友账号:<s:property value="send_id" /></s:iterator></td></tr><form action="text_message" method="post"><tr><td height="3%" align="right">留言:</td><td colspan="5"><textarea name="message" rows="10" cols="80"></textarea> <input type="submit" value="留言"></td></tr></form></table><table align="center" border="1" cellpadding="20"><tr><td>内容</td><td>接收人</td><td>发送人</td></tr><s:iterator value="%{#session.list}" var="t" status="s"><tr  colspan="6" height="35%" bgColor="#00ff80"><td><s:property value="message"/></td><td> <s:property value="#user.user_name"/>  </td> <td><s:property value="%{#session.list1[#s.index]}" /></td></td></tr></s:iterator></table></body>
</html>

中间我修改state时候不知道更新还需要知道主键,有点卡住,以及在遍历留言时候,因为外键是ID通过ID在iterator遍历如何显示名字:我先通过:

List list1=new ArrayList();
for(int i=0;i<list.size();i++){
list1.add(list.get(i).getUser().getUser_name());
       }
session.setAttribute("list1", list1);保存姓名,然后

在struts2中用迭代器把名字显示出来:这个问题也纠结半天。

%{#session.list1[#s.index]}
这个项目中我发现自己存在一些小的问题:思路有但是存在知识上的一些漏洞,后面开始复习spring,以及学习前端的东西,还有ajax和以前没有涉及的东西。还有大三的期末考试也快了,fighting..............................

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_824112.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站的中英文切换--i18next

这两天公司让我做公司官网&#xff0c;就是几个静态页面。我都不好意思说自己是Java开发了&#xff0c;年后来公司基本上自己做毕业设计才写Java代码。在公司基本没有写过Java的东西&#xff0c;我都怀疑公司是不是看我Java太菜&#xff0c;让我以后就做前端了。。。然后我前端…

如何观看一些被屏蔽的网站_什么是屏蔽网线、非屏蔽网线,超五类双屏蔽网线?一文彻底清楚...

【工控课堂】电气工程师必备网站&#xff01;海量免费资源下载学习&#xff01; 下载地址&#xff1a;čľć庍-塼ć诞ĺ - www.gkket.com前天我们发布了关于超5类线水晶头与6类线水晶头有什么不同&#xff1f;6类水晶头如何接线&#xff1f;有朋友提到屏蔽双绞线&…

wordpress 内网安装插件_wordpress零基础建站(5)-启用redis+优化php-fpm和mysql

在上一节教程中&#xff0c;我们已经搭建了wordpress环境phpnginxmysqlredis&#xff0c;并完成wordpress安装&#xff0c;目前你应该可以正常登录wordpress后台了。这篇文章是wordpress优化的第一篇文章&#xff0c;主要是软件配置方面的内容&#xff0c;后面我们还会再写一篇…

linux字符驱动程序过程,字符设备驱动程序 - Linux设备驱动程序笔记_Linux编程_Linux公社-Linux系统门户网站...

.主设备号和次设备号对字符设备的访问时通过文件系统内的设备名称进行的。那些设备名称简单称之为文件系统树的节点&#xff0c;它们通常位于/dev目录。字符设备驱动程序的设备文件可通过ls -l命令输出的第一列中的c来识别。块设备同样位于/dev下&#xff0c;由字符b标识crw-rw…

亳州学院计算机查询网址,亳州学院教务处网站【官网入口】

亳州学院教务处网站(一)亳州学院教务处网站(二)2016亳州中小学寒假放假时间&#xff1a;1月29日-2月22日中国招生考试网资讯 12月30日&#xff0c;市教育局下发通知&#xff0c;敲定了亳州市中小学幼儿园寒假放假时间。全市中小学、幼儿园寒假从1月29日(腊月二十)开始&#xff…

买服务器做网站 镜像选什么,云服务器做网站镜像类型选啥

云服务器做网站镜像类型选啥 内容精选换一换超高性能计算型主要用于满足高端计算(例如工业仿真、分子建模、计算流体力学)的需要&#xff0c;除了提供强大的CPU能力外&#xff0c;还提供了多种选择&#xff0c;使用EDR InfiniBand网卡组成的低延迟RDMA网络&#xff0c;支持内存…

哪个云服务器网站不用备案,国内不需要备案的服云服务器

国内不需要备案的服云服务器 内容精选换一换不想看文字&#xff0c;请直接戳视频链接。可以不做备案吗&#xff1f;根据《互联网信息服务管理办法》等相关规定&#xff0c;使用中国大陆节点服务器开办的网站&#xff0c;必须先办理网站备案&#xff0c;备案成功并获取通信管理局…

一步步构建大型网站架构

一步步构建大型网站架构 来源: itivy 发布时间: 2011-05-02 20:21 阅读: 12388 次 推荐: 10 原文链接 [收藏] 之前我简单向大家介绍了各个知名大型网站的架构&#xff0c;MySpace的五个里程碑、Flickr的架构、YouTube的架构、PlentyOfFish的架构、WikiPedia的架构。这几个都很典…

Linux实战案例——使用LNMP+WordPress搭建个人博客网站

一、案例目标 了解 LNMP 环境的组成。 了解 LNMP 环境的部署与安装。 了解 WordPress 应用的部署与使用二、环境介绍 1.LNMP LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux&#xff0c;N指Nginx&#xff0c;M一般指MySQL&#xff0c;也…

php随机名人名言,自建网站随机名言警句API也就是一言随机名句api【教程】

自建版的好处就是&#xff0c;api 及经典语句内容完全由自己管控&#xff0c;并且稳定性受自己影响&#xff0c;不受外部网站影响&#xff1b;当然&#xff0c;缺点也很明显了&#xff0c;木有一言的语句多。一言网(Hitokoto.cn)隶属于萌创 Team&#xff0c;目前网站主要提供一…

Google推出网站优化工具-Website Optimizer

首先我们了解一下什么是"landing page"。"landing page"即"着陆页面"&#xff0c;简而言之&#xff0c;它就是网站读者到达你的网站时所看到的第一个网页。读者可能是在搜索引擎的搜索结果里看到你的网站&#xff0c;然后点击进来&#xff0c;也…

通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行(转)

本文将讨论&#xff1a; • 缓存和 Forms 身份验证 • 视图状态和会话状态 • 配置文件属性序列化 • 线程池饱和 • 模拟和设置配置文件 本文使用了下列技术&#xff1a; .NET Framework、ASP.NET、Windows Server 2003 本页内容 LoadControl 和输出缓存会话和输出缓存Fo…

网站、数据库的衍变之路(四)

话接前文《网站、数据库的衍变之路(三) 》。上回说到该增加服务器了&#xff0c;那要增加多少服务器&#xff0c;增加了服务器网站怎么部署呢&#xff1f;最简单的办法当然是拆分应用。 一、分离应用 图1 如图1所示&#xff0c;把应用拆分开来&#xff0c;根据压力放置到不同的…

(转) Tomcat之web应用的部署和网站目录的映射

//注&#xff1a;$CATALINA_BASE表示Tomcat安装的目录&#xff0c;后面你会看到//前半部分为分析&#xff0c;后半部分为实战 //CATALINA -->一个好听的名字:卡特琳娜 什么是web应用的部署和网站目录的映射?说白了就是如何让用户访问到我们开发的网站。 众所周知我么做好的…

2011年国外最受欢迎的15个交友网站

2019独角兽企业重金招聘Python工程师标准>>> 面向全球电子商务知识库网站eBizMBA公布了2011年国外最受欢迎的15个交友网站&#xff1a; 1 Match (http://www.match.com) eBizMBA排名第214&#xff0c;估计每月访客23800000人&#xff0c;竞争力排名第132&#xff0c…

经典网页设计:应用四边形的16个超酷的国外网站

从这篇文章开始将向大家分享一系列的创意网页设计作品&#xff0c;这些作品都是从网上挑选出来的精品&#xff0c;相信能带给你不一样的视觉体验。今天这篇带来的是四边形 元素在网页设计中应用的16个国外优秀示例。 Witcode Piropixel Datskat Interativacom Designergleb Fac…

dvwa页面打不开的原因_影响网站打开速度的原因有哪些

在运营网站的时候会发现&#xff0c;有的时候网站打开很快&#xff0c;有的时候网站打开的很慢&#xff0c;网站打开的快慢影响着用户体验以及搜索引擎的友好性。那么&#xff0c;影响网站打开速度的原因有哪些呢&#xff1f;1、网站页面的大小网站页面的大小直接影响着网站打开…

HTML5网站大观:非常精美的 HTML5 摄影网站案例

2011年是 HTML5 蓬勃发展的一年&#xff0c;随着 HTML5 技术的日渐成熟&#xff0c;移动互联网将成为 HTML5 发展最大的舞台&#xff0c;我们有理由相信&#xff0c;在不久的将来&#xff0c;HTML5 将引领互联网新革命。本期的 HTML5 网站大观继续与大家分享国外优秀的 HTML5 网…

一个服务器可以装几个网站,ecs云服务器可以装几个网站

ecs云服务器可以装几个网站 内容精选换一换无法访问HECS上运行的网站怎么办&#xff1f;网站的访问与云服务器的网络配置、端口通信、防火墙配置、安全组配置等多个环节相关联。任意一个环节出现问题&#xff0c;都会导致网站无法访问。网站无法访问的排查思路关于网站无法访问…