ssh+mysql实现的Java web论坛系统源码
今天给大家来演示一下一款有spring+struts2+hibernate+mysql实现的Java web论坛系统源码,本系统功能类似与csdn论坛,用户发帖时可以设置积分,当结帖时可以选择给评论的用户给与相应的分值,功能非常完善,已经接近可以直接上线使用的地步了,关于怎么修改页面的logo和版权信息我在视频最后面讲了,想改的可以参考修改。项目源码和视频指导运行教程获取方式在最下方视频演示
包的文件目录结构:
数据库脚本 下载实例
/*SQLyog Ultimate v12.08 (64 bit)MySQL - 5.5.53 : Database - db_bbs_forum**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`db_bbs_forum` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;USE `db_bbs_forum`;/*Table structure for table `t_announce` */DROP TABLE IF EXISTS `t_announce`;CREATE TABLE `t_announce` ( `id` int(11) NOT NULL AUTO_INCREMENT, `announcement` longtext, `title` varchar(100) DEFAULT NULL, `newtime` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;/*Data for the table `t_announce` */insert into `t_announce`(`id`,`announcement`,`title`,`newtime`) values (1,'额外的多所所多所多多所多所多所撒大声地的所多所说三道四多多所多所所多撒大声地的多所所多多所多所是多大的多多多多多多多多多多多所
','去去去','2017-10-09 16:39:38'),(2,'大神大神多所多所多所多所多所多是多大的多多多多多多多多多多多多多多多多多多多多多多多的点点滴滴多付但事实上所所所所所所所所所所所所所所所所所所所所所所所所
','大多数','2017-10-09 16:39:50'),(3,'大家可以向作者提出自己对本论坛的建议,为本论坛献出自己的一份力量,作者会非常乐意接收大家对本论坛的有利的意见,谢谢!
反馈意见可以到本系统作者发表的的一个帖子"关于本论坛的建议"进行评论,谢谢大家的支持!
','反馈作者','2017-10-09 16:35:25'),(4,'
本论坛目前一段时间正用于测试,还未投入正式使用当中,用户使用过程可能会遇到一些问题,请大家去"大家来找茬"这篇帖子提出自己遇到的问题,方便论坛管理员维护,谢谢!
用户使用请注意,一段时间后会将所有数据清空,请用户保存好资料!
再次感谢大家的关注!
','系统测试','2017-10-09 16:35:19'),(5,'隐私和版权:
为保证论坛正常发展,规避意外风险,从而向广大用户提供更优质的服务,故此特设版权声明。为保证您的知识产权不被侵犯,建议您在接受本站服务之前,请务必仔细阅读。
1、本站将按照法律规定删除违法信息,并一概不受理当事方或委托方的相关投诉。
2、所有在本网站发布的转载文章,必须事先征得原作者同意,且注明原作者姓名和文章来源,如有侵权或违法行为,本网站不承担任何法律责任;所有文章仅代表作者个人的观点和立场,其侵权或违法行为的责任由作者本人承担。
3、 凡本网站上所有的文字、图片和音频、视频稿件,任何媒体、网站或个人未经本网站协议授权不得转载、链接、转贴或以其他方式复制发表,如有需要,请与本网站联系相关事宜。违者本网站将追究其法律责任。
4、 本站所刊载的文章资料、图片、图表、数据仅供参考使用,所刊登的广告,均为广告商的个人意见及表达方式,和本网站无任何关系,如有侵权或违法行为应由其相关广告商承担责任。
5、 用户在本站注册时,本网站将在您的同意及确认下,通过注册表格等形式要求您提供一些个人私密资料,在未经用户本人同意的情况下,本站绝对不会将用户的任何资料泄露给第三方。但当政府部门、司法机关依照法定程序要求本网站披露时或不可抗力除外。
6、 凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本项声明的约束。
7、 如果您有任何疑问,请与我们联系。
','隐私和版权','2017-10-09 16:35:12'),(8,'
新用户一定要活跃!
新用户一定要活跃!
新用户一定要活跃!
新用户一定要活跃!
新用户一定要活跃!
新用户一定要活跃!
','新用户注意了','2018-05-14 14:23:16');/*Table structure for table `t_category` */DROP TABLE IF EXISTS `t_category`;CREATE TABLE `t_category` ( `id` int(11) NOT NULL, `name` varchar(30) DEFAULT NULL, `count_topics` int(11) DEFAULT '0', `count_comments` int(11) DEFAULT '0', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `t_category` */insert into `t_category`(`id`,`name`,`count_topics`,`count_comments`) values (1,'编程语言',2,1),(2,'前端技术',3,8),(3,'Java Web',4,14),(4,'应用框架',1,1),(5,'移动开发',0,0),(6,'综合技术',1,0),(7,'开发工具',1,4),(8,'论坛杂谈',6,53),(9,'共享专区',3,7),(10,'智慧点点',0,0);/*Table structure for table `t_comment` */DROP TABLE IF EXISTS `t_comment`;CREATE TABLE `t_comment` ( `id` int(11) NOT NULL AUTO_INCREMENT, `content` longtext, `floor` int(11) DEFAULT NULL, `comment_time` datetime DEFAULT NULL, `comments_user_id` int(11) NOT NULL, `comments_topic_id` int(11) NOT NULL, `integral` int(11) DEFAULT '0', `status` int(11) DEFAULT '0', PRIMARY KEY (`id`), KEY `comments_topic_id` (`comments_topic_id`) USING BTREE, KEY `comments_user_id` (`comments_user_id`), CONSTRAINT `comments_topic_id` FOREIGN KEY (`comments_topic_id`) REFERENCES `t_topic` (`id`), CONSTRAINT `comments_user_id` FOREIGN KEY (`comments_user_id`) REFERENCES `t_user` (`id`)) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8;/*Data for the table `t_comment` */insert into `t_comment`(`id`,`content`,`floor`,`comment_time`,`comments_user_id`,`comments_topic_id`,`integral`,`status`) values (1,'大赞楼主
',1,'2014-08-22 18:06:01',2,2,9,0),(2,'这里弄得简单了一点,还有很多没有考虑到哦
',1,'2014-08-22 18:06:46',2,1,5,0),(3,'比如说空格字符串处理:假设需要处理的字符串为str,添加一句str.replace(/( )|\\s|\\u00a0/g, '');可以去掉空格
',2,'2014-08-22 18:08:27',2,1,5,0),(4,'感谢各位捧场,哈哈哈
',2,'2014-08-22 10:26:29',1,2,0,0),(5,'不错不错,学习了
',3,'2014-08-22 10:26:51',1,1,0,0),(6,'我自己来一个,IE兼容模式好像效果很差
',1,'2014-08-22 10:34:23',1,5,0,1),(7,'我自己来一个,IE兼容模式好像效果很差
',1,'2014-08-22 10:34:26',1,5,0,1),(8,'我自己来一个,IE兼容模式好像效果很差
',1,'2014-08-22 10:34:28',1,5,0,1),(9,'我自己来一个,IE兼容模式好像效果很差
',1,'2014-08-22 10:34:27',1,5,0,0),(10,'我自己来一个,IE兼容模式好像效果很差
',1,'2014-08-22 10:34:19',1,5,0,1),(11,'访问好慢啊,连续点了几次就成楼上这样了
',3,'2014-08-22 10:35:35',1,5,0,0),(12,'刚刚出问题了,这篇帖子的楼层请忽略
',4,'2014-08-22 10:39:00',2,5,0,0),(13,'这是web容器生成的servlet代码中有out.write(""),这个和JSP中调用的response.getOutputStream()产生冲突.
\r\n 即Servlet规范说明,不能既调用 \r\nresponse.getOutputStream(),又调用response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出\r\n \r\nIllegalStateException,因为在jsp中,out变量是通过response.getWriter得到的,在程序中既用了\r\nresponse.getOutputStream,又用了out变量,故出现以上错误。
http://www.shangxueba.com/jingyan/1862380.html
刚刚找到的,看能不能解决你的问题
',1,'2014-08-22 10:42:12',2,6,0,0),(14,'
前端可以看js的扩展类库,比如jquery,EXTjs,easyui等
框架的话可以了解spring mvc,目前还比较流行,总之很多啦
',1,'2014-08-22 10:44:15',2,7,0,0),(15,'图片上传有问题
',5,'2014-08-22 10:46:13',1,5,0,0),(16,'引用功能只有留言框上的可以使用
',6,'2014-08-22 10:46:33',1,5,0,0),(17,'
收回,在firefox里面好像可以
不对,好像是只能引用自己的。。。
链接进不去
',1,'2014-08-22 10:48:51',1,8,0,0),(20,'好东西啊
',1,'2014-08-22 10:58:38',4,9,0,0),(21,'链接进不去
\r\n这链接不管用,求楼主重发
http://pan.baidu.com/s/1sjnsCBb
刚更正的公开链接 嘻嘻 前面的不好意思啊
',3,'2014-08-22 11:01:35',3,8,0,0),(23,'
学习了
',3,'2014-08-22 11:01:39',4,2,1,0),(24,'不错,学习了
',2,'2014-08-22 11:02:40',4,7,0,0),(25,'http://pan.baidu.com/s/1sjnsCBb
刚更正的公开链接 嘻嘻 前面的不好意思啊
\r\n
不错,感谢楼主分享
',4,'2014-08-22 11:03:25',4,8,0,0),(26,'验证码。俺们还没弄过的,学习学习
这东西太混杂了,一般都是用的时候俺们才会去查
',1,'2014-08-22 11:05:23',4,3,10,0),(28,'自己来顶啊
怎么没人来交朋友啊
谢谢二楼 !!!!!!!!! 哈哈哈
',3,'2014-08-22 11:10:41',3,6,0,0),(31,'嘿嘿,报个到
嘿嘿,不错
',2,'2014-08-22 11:12:29',5,9,0,0),(33,'楼主真伟大
',5,'2014-08-22 11:12:59',5,8,0,0),(34,'恩恩 谢谢一楼!!!有用
一起学习哈
',4,'2014-08-22 11:53:16',1,2,0,0),(36,'引用功能只有留言框上的可以使用
收回,在firefox里面好像可以
是因为昵称包含'号
嘿嘿,大家一起学习
嘿嘿,分享个软件,无准考证查四六级
编号12137前来报到 请您指示!
',7,'2014-08-22 12:44:06',3,10,0,0),(40,'',5,'2014-08-22 12:44:40',2,9,0,0),(41,'
还有很多问题呢
',10,'2014-08-22 14:09:45',1,5,0,0),(42,'还有很多问题呢
\r\n确实
继续来找茬
凑个热闹啊
过来了哈哈哈
先把消息提示取消掉
还差两个啊
还有一个,嘿嘿
哈哈哈哈哈哈哈哈哈
',6,'2014-08-22 17:41:21',1,8,0,0),(50,'积分可以少于10了???
居然就5分,不答了
',1,'2014-08-23 01:37:06',3,12,0,0),(51,'哈哈,改了一下
图片上传已搞定
',13,'2014-08-23 01:49:38',1,5,0,0),(53,'1.上传图片(头像)
2.在回复信息时图片加不上去
3.结贴时总是无法分配积分
4.用户称号需要改成动态的
5.点击用户名以后出现的界面里,用户信息中发帖数不是动态的,一直是0
',14,'2014-08-23 03:23:06',3,5,0,0),(54,'1.上传图片(头像)
2.在回复信息时图片加不上去
3.结贴时总是无法分配积分
4.用户称号需要改成动态的
5.点击用户名以后出现的界面里,用户信息中发帖数不是动态的,一直是0
上传图片(头像)搞定了,因为img标签中文名显示问题,可能跟那里的tomcat的配置有关系
2.在回复信息时图片加不上去,这个要上传的,不能直接黏贴,但是以前我好像黏贴起来过,现在。。。。
3.结贴时总是无法分配积分,不会啊,分配积分需要分配完,不然不能成功的,那里用到了js验证
4.用户称号需要改成动态的,,,,,这个
5.点击用户名以后出现的界面里,用户信息中发帖数不是动态的,一直是0 已修复,后台代码问题
我自己来一个,IE兼容模式好像效果很差
',1,'2014-08-23 05:49:50',1,13,0,0),(56,'图片上传有问题
',2,'2014-08-23 05:51:05',1,13,0,0),(57,'引用功能有问题
',3,'2014-08-23 05:51:13',1,13,0,0),(58,'回复不能黏贴图片
',4,'2014-08-23 05:51:31',1,13,0,0),(59,'
2.在回复信息时图片加不上去
图片黏贴的效果
',6,'2014-08-23 05:52:17',1,13,0,0),(61,'4.用户称号需要改成动态的
',7,'2014-08-23 05:52:20',3,13,0,0),(62,'点击用户名以后出现的界面里,用户信息中发帖数不是动态的,一直是0
',8,'2014-08-23 05:52:36',3,13,0,0),(63,'
评论图片上传出现问题
',9,'2014-08-23 05:54:03',1,13,0,0),(64,'点击用户名以后出现的界面里,用户信息中发帖数不是动态的,一直是0
\r\n
这里改好了,只不过是以前的数据干扰了
',10,'2014-08-23 05:55:04',1,13,0,0),(65,'图片上传可以啊
',11,'2014-08-23 08:51:06',5,13,0,0),(66,'那个视频播放不了
',12,'2014-08-23 08:51:32',5,13,0,0),(67,'黏贴图片也可以啊
',13,'2014-08-23 08:52:04',5,13,0,0),(68,'引用功能有问题
\r\n这个也可以呢
',14,'2014-08-23 08:52:35',5,13,0,0),(69,'是不是这些问题都解决了啊,我怎么感觉解决了呢
',15,'2014-08-23 08:53:05',5,13,0,0),(70,'是不是这些问题都解决了啊,我怎么感觉解决了呢
\r\n是的,基本上都解决了
',16,'2014-08-23 08:55:22',1,13,0,0),(71,'哎呀 我怎么就黏贴不上捏?
的确啊 ctrl+v都用不上呢!!!!
可以黏贴啊
',19,'2014-08-24 06:47:43',1,13,0,0),(74,'哈哈哈,做的不错哦!
',20,'2014-08-24 14:47:58',2,13,0,0),(75,'撒打算发地方
怎么没有人那
\r\n
呵呵看见好看了好几口后进口货
\r\n
呵呵看见好看了好几口后进口货
很快就很快就好了
dfasdfasfasfdasfa
',21,'2014-12-10 16:40:02',5,13,0,0),(80,'测试的帖子,大家可以忽略!
',1,'2018-05-14 14:08:08',10,20,0,0),(81,'好帖子,顶起来!
',2,'2018-05-14 14:09:37',11,20,3,1),(82,'很好的帖子。
',3,'2018-05-14 14:12:35',12,20,2,1),(83,'户户户撒的
',4,'2018-05-14 14:18:17',10,20,0,1);/*Table structure for table `t_grade` */DROP TABLE IF EXISTS `t_grade`;CREATE TABLE `t_grade` ( `id` int(11) NOT NULL AUTO_INCREMENT, `honor` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;/*Data for the table `t_grade` */insert into `t_grade`(`id`,`honor`) values (1,'初闻编程'),(2,'\"hello,world\"'),(3,'能读能写'),(4,'初涉脚本'),(5,'系统管理员'),(6,'高级实践者'),(7,'掌握多语言'),(8,'资深架构师'),(9,'诠释者'),(10,'函数式编程'),(11,'语言设计者'),(12,'计算机科学家'),(13,'计算机之父'),(14,'计算机之神'),(15,'科技领头羊'),(16,'科技先驱'),(17,'回归田野'),(18,'超级大水货');/*Table structure for table `t_help` */DROP TABLE IF EXISTS `t_help`;CREATE TABLE `t_help` ( `id` int(11) NOT NULL, `title` varchar(100) DEFAULT NULL, `content` longtext, `newtime` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `t_help` */insert into `t_help`(`id`,`title`,`content`,`newtime`) values (1,'登录与注册','如何注册论坛账号
点击论坛右上角的"注册"进行注册。注册成功之后,系统会自动跳转到论坛首页。
如何登录论坛
如果您已经注册成功,您可以点击页面右上角的登录进行登录,进入登录界面填写正确的用户名、密码,点击"登录"即可完成登录。登录成功后会自动跳转到论坛首页。
忘记密码
目前还没有找回密码的功能,所以请大家先牢记自己的密码,论坛会加紧时间进一步开发这个功能,敬请期待,谢谢!
修改密码
登录后点击论坛右上角"个人中心"-"修改密码" 可以修改登录密码。
测试管理
测试管理
测试管理
测试管理
测试管理
测试管理
测试管理
测试管理
测试管理
测试管理
测试管理
测试管理
测试管理
测试管理
经常写js验证,感觉很麻烦,这次就把他整理贴出来,以后可以直接用了。具体介绍这里不罗嗦了,直接贴代码,相信大家都能理解代码的含义
登录验证:
Jsp页面代码:
<form action="userLogin.action" method="post" onsubmit="return login();" id="loginForm">\r\n <h4>用户登录</h4>\r\n <br /> 用 户 名:<input type="text" name="user.username" id="uName" style="height: 30px;width: 220px;font-size: 20px;" /><br />\r\n <br /> 密 码:<input type="password" name="user.password" id="uPass" style="height: 30px;width: 220px;font-size: 20px;" /><br />\r\n <br /> <input type="submit" value="登录" style="height: 30px;width: 60px;font-size: 20px;" /> \r\n <input type="reset" value="重置" style="height: 30px;width: 60px;font-size: 20px;" />\r\n </form>
js验证代码:
function login() {\r\n // console.info("点击了登录");\r\n var userName = $("#uName").val();\r\n // console.info(userName)\r\n var userPass = $("#uPass").val();\r\n // console.info(userPass);\r\n if (userName == "" || userName == null) {\r\n alert("用户名不能为空");\r\n return false;\r\n } else if (userPass == "" || userPass == null) {\r\n alert("密码不能为空");\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n}
继续上一篇js注册验证
注册验证:
JSP页面代码:
<span style="white-space:pre"> </span><form action="userRegister.action" method="post" onsubmit="return register();">\r\n <h4>用户注册</h4>\r\n <table>\r\n <tr>\r\n <td style="text-align: right;width: 200px;line-height: 50px;">用 户 名<font\r\n color="red">*</font>:\r\n </td>\r\n <td><input type="text" name="user.username"\r\n onblur="return checkname()" id="uName"\r\n style="width: 220px;font-size: 16px;" /></td>\r\n <td id="namets"\r\n style="width: 150px;height:40px;text-align: left;font-size: 12px;"></td>\r\n </tr>\r\n <tr>\r\n <td style="text-align: right;line-height: 50px;">密 码<font\r\n color="red">*</font>:\r\n </td>\r\n <td><input type="password" id="uPass" name="user.password"\r\n onblur="return checkpass();"\r\n style="width: 220px;font-size: 16px;" /></td>\r\n <td id="passts"\r\n style="width: 150px;text-align: left;font-size: 12px;"></td>\r\n </tr>\r\n <tr>\r\n <td style="text-align: right;line-height: 50px;">确认密码<font\r\n color="red">*</font>:\r\n </td>\r\n <td><input type="password" name="" id="uRPass"\r\n onblur="return checkrpass();"\r\n style="width: 220px;font-size: 16px;" /></td>\r\n <td id="pa***ts"\r\n style="width: 150px;text-align: left;font-size: 12px;"></td>\r\n </tr>\r\n <tr>\r\n <td style="text-align: right;line-height: 50px;">邮 箱<font\r\n color="red">*</font>:\r\n </td>\r\n <td><input type="text" name="user.email" id="uEmail"\r\n onblur="return checkemail();"\r\n style="width: 220px;font-size: 16px;" /></td>\r\n <td id="emailts"\r\n style="width: 150px;text-align: left;font-size: 12px;"></td>\r\n </tr>\r\n <tr>\r\n <td></td>\r\n <td style="text-align: center;line-height: 55px;width:220px"><input\r\n type="submit" value="注册"\r\n style="width: 60px;font-size: 16px;" /> <input\r\n type="reset" value="重置"\r\n style="width: 60px;font-size: 16px;" /></td>\r\n </tr>\r\n </table>\r\n </form>
js验证代码:
function register() {\r\n if(!checkname()){\r\n return false;\r\n }else if (!checkpass()) {\r\n return false;\r\n } else if(!checkemail()){\r\n return false;\r\n } \r\n return true;\r\n}
function checkname() \r\n{\r\n var name = document.getElementById("uName").value; \r\n var ts = document.getElementById("namets");\r\n if(name.length<3|| name.length>15) \r\n { \r\n ts[xss_clean] ="用户名长度须在3-15之间!";\r\n ts.style.color="red";\r\n return false;\r\n }\r\n $.post("checkUserName.action", {" userName": name },function(data){\r\n var d = $.parseJSON(data);\r\n //console.log(d.success);\r\n if(d.success!=true){\r\n ts[xss_clean] ='用户名已存在!';\r\n ts.style.color='red';\r\n return true;\r\n }\r\n });\r\n ts[xss_clean] ='用户名可以使用!';\r\n ts.style.color='green';\r\n return true;\r\n}\r\nfunction checkpass(){\r\n var userPass = $("#uPass").val();\r\n \r\n var pts = document.getElementById("passts");\r\n \r\n if(userPass.length<6 || userPass.length >15) \r\n { \r\n pts[xss_clean] ="密码长度须在6-15之间!";\r\n pts.style.color="red";\r\n return false;\r\n }\r\n pts[xss_clean] ="密码可以使用!";\r\n pts.style.color="green";\r\n return true;\r\n}\r\nfunction checkrpass(){\r\n var userPass = $("#uPass").val();\r\n var userRPass = $("#uRPass").val();\r\n var prts = document.getElementById("pa***ts");\r\n if (userPass != userRPass) {\r\n prts[xss_clean]="两次密码输入不一致!";\r\n prts.style.color="red";\r\n return false;\r\n }\r\n prts[xss_clean] ="输入一致!";\r\n prts.style.color="green";\r\n return true;\r\n}\r\nfunction checkemail(){\r\n var userEmail = $("#uEmail").val();\r\n var ets = document.getElementById("emailts");\r\n if(!isEmail(userEmail)){\r\n ets[xss_clean] ="邮箱格式不正确!";\r\n ets.style.color="red";\r\n return false;\r\n } \r\n ets[xss_clean] ="邮箱可以使用!";\r\n ets.style.color="green";\r\n return true;\r\n}\r\nfunction isEmail(str){\r\n var reg = /[a-z0-9-]{1,30}@[a-z0-9-]{1,65}.[a-z]{3}/;\r\n return reg.test(str);\r\n}
下表显示了常见的HTTP 1.1状态代码以及它们对应的状态信息和含义。
应当谨慎地使用那些只有HTTP 1.1支持的状态代码,因为许多浏览器还只能够支持HTTP 1.0。如果你使用了HTTP 1.1特有的状态代码,最好能够检查一下请求的HTTP版本号。 状态代码 状态信息 含义
100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)
101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)
200 OK 一切正常,对GET和POST请求的应答文档跟在后面。
201 Created 服务器已经创建了文档,Location头给出了它的URL。
202 Accepted 已经接受请求,但处理尚未完成。
203 Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。
204 No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
205 Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。
206 Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。
300 Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是"Moved Temporatily"。
出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。
注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求http://host/~user(缺少了后面的斜杠),有的服务器返回301,有的则返回302。
严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。
303 See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。
304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取(HTTP 1.1新)。
307 Temporary Redirect 和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是 POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码: 当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。(HTTP 1.1 新)
400 Bad Request 请求出现语法错误。
401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。
403 Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。
404 Not Found 无法找到指定位置的资源。这也是一个常用的应答。
405 Method Not Allowed 请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用。(HTTP 1.1新)
406 Not Acceptable 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容(HTTP 1.1新)。
407 Proxy Authentication Required 类似于401,表示客户必须先经过代理服务器的授权。(HTTP 1.1新)
408 Request Timeout 在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。(HTTP 1.1新)
409 Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。(HTTP 1.1新)
410 Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。(HTTP 1.1新)
411 Length Required 服务器不能处理请求,除非客户发送一个Content-Length头。(HTTP 1.1新)
412 Precondition Failed 请求头中指定的一些前提条件失败(HTTP 1.1新)。
413 Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头(HTTP 1.1新)。
414 Request URI Too Long URI太长(HTTP 1.1新)。
416 Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头。(HTTP 1.1新)
500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求。
501 Not Implemented 服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。
502 Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。
503 Service Unavailable 服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。
504 Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。(HTTP 1.1新)
505 HTTP Version Not Supported 服务器不支持
session超时设置阵列有以下3种方法:
1. 在tomcat ->conf -> servler.xml文件中定义:
<Context path="/test" docBase="/test"
defaultSessionTimeOut="3600" isWARExpanded="true"
isWARValidated="false" isInvokerEnabled="true"
isWorkDirPersistent="false"/>
defaultSessionTimeOut="3600"
2. 在web.xml中定义:
<session-config>
<session-timeout>20</session-timeout>
</session-config>
3. 在程序中定义:
session.setMaxInactiveInterval(30*60);表示30分钟内不操作就失效
设置单位为秒,设置为-1永不过期
来,说说大家的问题哈
',15,0,'2014-08-22 10:32:27',1,36,0,10),(6,'如何在用SSH框架实现用户管理系统时,在登录界面添加验证码(验证码不写在jsp中)???','在用SSH框架写用户管理系统的代码时,准备在登陆代码中添加一个验证码的功能,可是当我在jsp页面外单开一个action写验证码的代码后,只要一到登陆界面,后台就会报错,报的是OutputStream和getwriter的输出流冲突错误。。。求解!!!!
注:(非测试代码,真求解啊)
',3,0,'2014-08-22 10:39:02',3,13,0,20),(7,'JavaWeb发展学习方向','在学完SSH以后,如果还要学web方面的知识的话该看什么了????谁知道 。。
',3,0,'2014-08-22 10:41:22',3,13,0,10),(8,'SSH学习视屏分享------论坛开张推出的优惠哦 ............','http://pan.baidu.com/disk/home#path=%252Fssh%25E6%25A1%2586%25E6%259E%25B6
',6,0,'2014-08-22 10:47:54',3,13,1,10),(9,'EXTJS4.0视频分享','
http://pan.baidu.com/s/1pJLNGIf
',7,0,'2014-08-22 10:56:52',2,40,1,10),(10,'新手报到啦!!!','大家互相认识一下吧,哈哈
',14,0,'2014-08-22 11:06:59',4,36,0,10),(11,'大家说说找回密码功能怎么做啊','如题,请大家指导指导,万分感谢
',1,0,'2014-08-22 11:57:15',1,19,0,40),(12,'jsp img标签包含中文该如何处理呢','如题,请大家指教,img标签里面的src我是通过struts 的property获取的
',2,0,'2014-08-23 01:29:34',1,10,0,5),(13,'给本论坛的建议','大家好,欢迎大家来到DS-Java论坛,目前本论坛处于测试过程,欢迎大家来找BUG,万分感谢,找到bug后回复在此楼层,谢谢
',21,0,'2014-08-23 05:49:14',1,36,0,30),(14,'测试发图,','---------------------------------------------------------------------
自己上传
测试上传视频,前面的帖子没弄好,重来
',0,0,'2014-08-24 16:52:49',1,36,0,5),(18,'我也来测试一下','上一篇主任没有弄对格式,我试试看
大家交个朋友吧大家交个朋友吧大家交个朋友吧
',1,0,'2014-11-06 18:50:17',1,1,0,10),(20,'600多个微信小程序源码涵盖各个行业大部分带后台持续更新中','600多个微信小程序源码涵盖各个行业大部分带后台持续更新中
今天把本人花费一个月左右整理的600多款小程序源码发布出来,以后每个月还会持续更新,很大一部分都带有后台源码并包含有小程序上线教程,帮你分分钟上线自己的小程序,下面我们来看看目录截图,最后面会把源码目录以文字的形式导出来,这样你可以在网页上搜索单个想要的小程序源码,看看有没有符合你需要的。为了让大家更快速地建立自己的小程序,四月底我们更新了一批实战教程附带源码的资料,下面的介绍中会有介绍。
',4,1,'2018-05-14 14:07:45',10,31,1,5);/*Table structure for table `t_type` */DROP TABLE IF EXISTS `t_type`;CREATE TABLE `t_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT NULL, `count_topics` int(11) DEFAULT '0', `count_comments` int(11) DEFAULT '0', `is_admin_type` int(11) DEFAULT '0', `types_category_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `types_category_id` (`types_category_id`), CONSTRAINT `types_category_id` FOREIGN KEY (`types_category_id`) REFERENCES `t_category` (`id`)) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8;/*Data for the table `t_type` */insert into `t_type`(`id`,`name`,`count_topics`,`count_comments`,`is_admin_type`,`types_category_id`) values (1,'Java',1,1,0,1),(2,'C/C++',1,0,0,1),(3,'C#',0,0,0,1),(4,'其他',0,0,0,1),(5,'HTML',0,0,0,2),(6,'CSS',0,0,0,2),(7,'Javascript',2,7,0,2),(8,'Jquery',0,0,0,2),(9,'其他',1,1,0,2),(10,'JSP/Servlet',1,2,0,3),(11,'JDBC',0,0,0,3),(12,'Xml',0,0,0,3),(13,'其他',3,12,0,3),(14,'Struts',0,0,0,4),(15,'Hibernate',0,0,0,4),(16,'Spring',0,0,0,4),(17,'iBATIS',0,0,0,4),(18,'Spring-MVC',0,0,0,4),(19,'SSH',1,1,0,4),(20,'其他',0,0,0,4),(21,'Android',0,0,0,5),(22,'IOS',0,0,0,5),(23,'WP',0,0,0,5),(24,'其他',0,0,0,5),(25,'Linux',0,0,0,6),(26,'数据库',0,0,0,6),(27,'数据结构',0,0,0,6),(28,'软件测试',0,0,0,6),(29,'其他',1,0,0,6),(30,'Eclipse',0,0,0,7),(31,'Myeclipse',1,4,0,7),(32,'Tomcat',0,0,0,7),(33,'Maven',0,0,0,7),(34,'浏览器',0,0,0,7),(35,'其他',0,0,0,7),(36,'聊聊',5,53,0,8),(37,'福利',1,0,0,8),(38,'文档',0,0,0,9),(39,'源码',0,0,0,9),(40,'视频',3,7,0,9),(41,'Java项目源码',0,0,0,10),(42,'Java web项目源码',0,0,0,10);/*Table structure for table `t_user` */DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user` ( `id` int(11) NOT NULL, `username` varchar(20) DEFAULT NULL, `password` varchar(20) DEFAULT NULL, `nickname` varchar(32) DEFAULT NULL, `sex` varchar(2) DEFAULT NULL, `picture` varchar(255) DEFAULT NULL, `email` varchar(20) DEFAULT NULL, `come_from` varchar(200) DEFAULT NULL, `introduction` longtext, `profession` varchar(40) DEFAULT NULL, `grade_integal` int(11) DEFAULT '0', `integral` int(11) DEFAULT NULL, `clock` int(11) DEFAULT NULL, `topic_count` int(11) DEFAULT NULL, `comment_count` int(11) DEFAULT NULL, `role_id` int(11) DEFAULT '0', `users_grade_id` int(11) NOT NULL, `register_time` datetime DEFAULT NULL, `status` int(11) DEFAULT '0', PRIMARY KEY (`id`), KEY `usersGrade_id` (`users_grade_id`), CONSTRAINT `usersGrade_id` FOREIGN KEY (`users_grade_id`) REFERENCES `t_grade` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `t_user` */insert into `t_user`(`id`,`username`,`password`,`nickname`,`sex`,`picture`,`email`,`come_from`,`introduction`,`profession`,`grade_integal`,`integral`,`clock`,`topic_count`,`comment_count`,`role_id`,`users_grade_id`,`register_time`,`status`) values (1,'admin','123456','智慧点点','男','/forum/u/uploadPic/20180514-03-28-03-Koala.jpg','[email protected]','上海','主要方向为java软件开发','程序员',40,60,0,7,22,16,1,'2014-07-24 08:00:00',0),(2,'???','123456','ImChengxuyuan','?','/u/uploadPic/20140824-06-55-13-psb.jpg','[email protected]','??',' ????Java????????2?...','Java?????',20,91,2,0,2,6,1,'2014-08-22 18:04:57',0),(3,'王云鹏','19941013aoliao','我一直在这儿','男','/DS-Java/u/uploadPic/王云鹏-20140822-11-153945IS-5.jpg','[email protected]','长理云塘','本人程序员一枚,爱好运动、编程,性别男,爱好女!!!','学生',20,78,0,0,6,16,1,'2014-08-22 10:32:30',0),(4,'哈哈哈','123456','俺来也','男','/DS-Java/image/ds-java.png','[email protected]','','','',0,61,0,0,0,6,1,'2014-08-22 10:57:56',0),(5,'123','123456789','木头人','男','/u/uploadPic/20140823-01-50-36-Koala.jpg','[email protected]','广州','生活不容易,且行且珍惜','码农',0,50,0,2,6,0,1,'2014-08-22 11:10:05',0),(6,'wang','123123','wang','男','/DS-Java/image/ds-java.png','[email protected]','','','',0,50,0,0,0,0,1,'2014-08-22 11:16:11',1),(7,'786543563','786543563','123456','男','/DS-Java/image/ds-java.png','[email protected]','','','',0,50,0,0,0,0,1,'2014-08-22 15:47:36',0),(8,'丫丫丫丫丫丫','19941013','丫丫丫丫丫丫',NULL,'/u/uploadPic/20140824-05-45-40-153945IS-5.jpg','[email protected]','','','',0,51,0,0,1,0,1,'2014-08-24 05:44:36',0),(9,'llq','qqqqqq','q','男','/forum/image/chen-Java.png','[email protected]','上海','这世界已经疯了!','屌丝',0,50,0,0,0,6,1,'2018-05-14 13:17:14',0),(10,'llq1','111111','明礼馨德','男','/forum/u/uploadPic/20180514-02-00-32-Koala.jpg','[email protected]','上海','这世界已经疯了!','软件工程师',20,69,0,1,2,6,1,'2018-05-14 13:29:50',0),(11,'托尔斯泰','111111','托尔斯泰','男','/forum/image/chen-Java.png','[email protected]','','','',0,53,0,0,1,0,1,'2018-05-14 14:09:01',1),(12,'马云的账号','111111','马云','男','/forum/image/chen-Java.png','[email protected]','','','',0,52,0,0,1,0,1,'2018-05-14 14:11:57',0);/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
项目数据库配置
jdbc_driverClassName=com.mysql.jdbc.Driverjdbc_url=jdbc:mysql://localhost:3306/db_bbs_forum?useUnicode=true&characterEncoding=UTF-8jdbc_username=rootjdbc_password=root
structs.xml
/login.jsp listType.* new_getType listType.*,category.* ManageAllType /login.jsp /error.jsp /a/a_error.jsp /index.jsp /error.jsp /index.jsp /login.jsp /user.jsp /userTopics.jsp /u/home.jsp /u/topics.jsp /u/comments.jsp /u/news.jsp /u/updateInfo.jsp /u/updatePass.jsp Logout,GoHome,GetTopics,GetComments,GetNews,UpdateInfo,UpdatePass /a/manageUsers.jsp /a/user.jsp /a/userTopics.jsp user_ManageAll user_ManageAll user_ManageAll user_ManageAll user_ManageAll ManageAll,ManageDelete,ManageUnDelete,ManageARole,ManageSRole /indexAnno.jsp /announce.jsp /a/manageAnnos.jsp /a/updateAnno.jsp anno_ManageAll anno_ManageAll ManageAll,ManageGoUpdate,ManageUpdate,ManageAdd /help.jsp /indexHelp.jsp /a/manageHelps.jsp /a/updateHelp.jsp help_ManageAll help_ManageAll ManageAll,ManageGoUpdate,ManageUpdate,ManageAdd /u/newTopic.jsp /type.jsp /typeCate.jsp /cate.jsp new_getAll cate_ManageAll /a/manageCates.jsp cate_ManageAll ManageAll,ManageAdd,ManageUpdate /theType.jsp cate_ManageAll cate_ManageAll ManageAdd,ManageUpdate topic_goTopic ${topic.id} /error.jsp /u/theTopic.jsp /indexHotTopic.jsp /indexFreshTopic.jsp /indexNiceTopic.jsp /allTopic.jsp /hotTopic.jsp /niceTopic.jsp /searchResult.jsp /u/endTopic.jsp topic_goTopic ${topic.id} /u/theTopic.jsp add,GoEnd,EndTopic,goTopicByNews /a/manageTopics.jsp topic_ManageAll topic_ManageAll ManageAll,ManageNice,ManageUnNice /error.jsp topic_goTopic ${topic.id} ${nowPage} topic_goTopic ${topic.id} /u/theTopicComments.jsp newComment,Delete image/bmp,image/png,image/gif,image/jpg /u/uploadPic /u/updateInfo.jsp /error.jsp