java 留言板_java web实现简单留言板功能
本文实例为大家分享了java web实现简单留言板的具体代码,供大家参考,具体内容如下
一、目标
用户可以登录并记住密码进入留言板,添加留言,点击留言列表中的标题可显示该条留言全部内容。
二、相关知识
1、使用Cookie实现自动登录
用户第一次登录网站,服务器将用户名和密码以Cookie的形式发送到客户端。当客户之后再次访问该网站时,浏览器自动将Cookie文件中的用户名和密码随请求一起发送到服务器,服务器从Cookie中取出用户名和密码并且通过验证。
2、java类的定义与使用
定义java类时注意属性的定义、构造方法的重写,定义两个方法,一个是访问方法(getter),一个是修改方法(setter)。
三、实现思路
1、登录
输入用户名、密码登录,对应检测登录BoardLoginServlet
可实现记住登录信息 Cookie实现
登录成功显示留言板标题列表页面board-title.jsp,登录失败返回登录页面
2、显示留言标题
标题列表为上下文变量lists,其中标题为链接,点击可显示留言具体信息界面(跳转到MessageServlet处理)。
list = username+":"+""+title+"";
页面下方有新增留言的链接,点击后跳转到写留言页面
新增留言
3、添加留言
输入标题、内容 post给WriteServlet
4、显示留言具体信息
在MessageServlet中遍历查找留言并传递变量,显示留言信息在board-message.jsp
四、代码实现
board-login.jsp
登录界面
昵称:
密码:
记住密码
board-title.jsp
留言板
${lists}
新增留言
boarrd-write.jsp
标题:
内容:
board-message.jsp
留言详情
用户名:${name}
标题:${title}
内容:${text}
时间:${date}
Message.java(将留言信息存储在Message类中)
package board;
import java.util.Date;
public class Message {
private String title;//标题
private String time;//时间
private String username;//用户名
private String text;//内容
public Message(){}
//初始化
public Message(String title,String time,String username,String text){
this.title = title;
this.time = time;
this.username = username;
this.text = text;
}
public String getTitle(){
return title;
}
public String getUsername(){
return username;
}
public String getTime(){
return time;
}
public String getText(){
return text;
}
}
BoardLoginServlet.java(用Cookie登录)
package board;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.IOException;
@javax.servlet.annotation.WebServlet(name = "BoardLoginServlet",urlPatterns = "/board.do")
public class BoardLoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset = utf-8");
request.setCharacterEncoding("UTF-8");
HttpSessionwww.cppcns.com session=request.getSession();
String username = request.getParameter("username").trim();
String password = request.getParameter("password").trim();
session.setAttribute("username",username);
if (!(username.equals("admin") &&password.equals("admin"))&&!(username.equals("123") &&password.equals("123"))) {
response.sendRedirect("bwww.cppcns.comalue1 = cookie.getValue();
if (cookie.getName().equals("password"))
value2 = cookie.getValue();
}
if (value1.equals("admin") && value2.equals("admin")||value1.equals("123") && value2.equals("123")) {
response.sendRedirect("board-title.jsp");
} else {
response.sendRedirect("board-login.jsp");
}
}
}
else
{
response.sendRedirect("board-title.jsp");
}
}
}
}
WriteServlet.java(新增留言)
package board;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@WebServlet(name = "WriteServlet",urlPatterns = "/write.do")
public class WriteServlet extends HttpServlet {
//messages列表中存放Message类对象
public List messages = new ArrayList();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
ServletContext context = request.getServletContext();
HttpSession session = request.getSession();
//用户名存储到session中
String username =(String)session.getAttribute("username");
String title = request.getParameter("title");
String text = request.getParameter("text");
//获取当前时间
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss");
Date date = new Date(System.currentTimeMillis());
String time = formatter.format(date);
//在messages列表中添加留言对象
messages.add(new Message(title,time,username,text));
context.setAttribute("messages",messages);
String list = new String();
//list中存放留言用户名+留言标题,标题为链接,可跳转到留言具体信息,并传参title
list = username+":"+""+title+"";
String lists = new String();
//将留言标题列表信息存到上下文对象
if(context.getAttribute("lists")!=null){
lists = context.getAttribute("lists") + list + "
";
}
else{
lists = list + "
";
}
context.setAttribute("lists", lists);
request.setAttribute("lists", lists);
//转发
RequestDispatcher dispatcher = request.getRequestDispatcher("/board-title.jsp");
dispatcher.forward(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
MessageServlet.java
package board;
import com.sun.net.httpserver.HttpContext;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
@WebServlet(name = "MessageServlet",urlPatterns = "/MessageServletwww.cppcns.com")
public class MessageServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletReque编程客栈st request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
ServletContext context = request.getServletContext();
List messages = new ArrayList();
//获取列表
messages = (List)context.getAttribute("messages");
//获取链接中的参数title
String title =request.getParameter("title");
String name = new String();
String date = new String();
String text = new String();
//遍历列表,查找该title的具体信息
for(Message message : messages){
if((message.getTitle()).equals(title)){
name = message.getUsername();
date = message.getTime();
text = message.getText();
title = message.getTitle();
request.setAttribute("name",name);
request.setAttribute("title",title);
request.setAttribute("text",text);
request.setAttribute("date",date);
break;
}
}
//将留言信息转发到board-message.jsp
RequestDispatcher dispatcher = request.getRequestDispatcher("/board-message.jsp");
dispatcher.forward(request, response);
}
}
(以上仅为部分代码)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
本文标题: java web实现简单留言板功能
本文地址: http://www.cppcns.com/ruanjian/java/366106.html
java 留言板_java web实现简单留言板功能相关推荐
- java jsp聊天系统_java web实现简单聊天室
目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...
- java的简单数字时钟_Java实现的简单数字时钟功能示例
本文实例讲述了java实现的简单数字时钟功能.分享给大家供大家参考,具体如下: 应用名称:java数字时钟 用到的知识:java gui编程,线程 开发环境:win8+eclipse+jdk1.8 功 ...
- java 性能 优化_Java十大简单性能优化
java 性能 优化 关于" web scale "这个流行词有很多炒作,人们花了很多时间来重新组织他们的应用程序体系结构,以使其系统"规模化". 但是什么是扩 ...
- php网页留言本过程,PHP实现简单留言本功能代码示例
这篇文章主要为大家详细介绍了PHP简单留言本功能的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了PHP留言本功能的具体代码,供大家参考,具体内容如下 index.ph ...
- javaweb mysql购物车_java web开发之实现购物车功能
为了方便自己以后复习,所以写的比较仔细,记录下自己的成长. 既然是做购物车,那么前提条件是首先需要一系列商品,也就是要建一个实体,这里建了一个商品表. 通过查询在浏览器上显示 基本显示已经做好了,现在 ...
- html模板留言板mysql_Php+mysql+html简单留言板制作
数据库两个 一个用来储存用户信息,一个用来存储留言信息 首先给大家展示下效果图 1.下面就开始我留言板制作:首先设计我们登陆页面,首先我们需要搭建一个登录页面,denglu.php如下图, dengl ...
- java web聊天室原理_java web实现简单聊天室
目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...
- java web 购物车_java web开发之实现购物车功能
为了方便自己以后复习,所以写的比较仔细,记录下自己的成长. 既然是做购物车,那么前提条件是首先需要一系列商品,也就是要建一个实体,这里建了一个商品表. 通过查询在浏览器上显示 基本显示已经做好了,现在 ...
- java错误页面_Java web 项目关于错误页面的处理
第一步:你需要建立一个显示错误信息的jsp页面,内容如下: 系统执行发生错误 系统执行发生错误,信息描述如下: 错误状态代码是:$ {pageContext.errorData.statusCode} ...
- java 缓存方法_Java实现一个简单的缓存方法
Java实现一个简单的缓存方法 发布时间:2020-09-07 21:39:55 来源:脚本之家 阅读:99 作者:BrightLoong 缓存是在web开发中经常用到的,将程序经常使用到或调用到的对 ...
最新文章
- 如何修改Series和DataFrame类型中的元素值_Redis的HSCAN命令中COUNT参数的失效场景
- 最大流问题的Ford-Fulkerson模板
- 不同路径Python解法
- Minidao_1.6.2版本发布,超轻量Java持久化框架
- Laravel中使用Eloquent时给查询的字段设置别名
- 【Elasticsearch】Elasticsearch自定义评分的N种方法
- windows下python环境搭建_Win7怎么搭建Python环境 win7系统搭建Python环境的方法
- jmap查询JVM堆内存
- stm32usb转串口驱动_新品推荐:乐扩PCI-E转8口RS-232串口卡 支持短铁片
- 菜鸟Python实战-05爬虫之爬取视频
- 碎片化学习和系统化学习的对比
- 区块链、密码和银行之间的衍生关系
- 2021-06-22
- RK3399 hi3559A 平台离线语音识别、合成、翻译、声纹
- ORACLE中函数last_day()的用法
- 2019第五届中国诗歌春晚致敬先贤
- 微信小程序—半圆(弧形)进度条
- scrapy框架之shell
- python开发基础之数据类型、字符编码、文件操作
- 一步步教你轻松学决策树算法
热门文章
- Elastic-jobQuartz定时任务
- mysql版本号字段比较大小_MySQL查询 – 比较版本号
- php 后端服务错误定义,【后端开发】php常见的错误类型有哪四种
- docker-compose进阶
- Android Ptrace Inject
- Codeforces Round #446 (Div. 2) D. Gluttony 构造,思维
- windows最常用的快捷键(windows10 )
- 操作文件的类 File demo3 小练习
- PRAE插件开发遇到的一个坑
- 160304-01、mysql数据库插入速度和读取速度的调整记录