本文实例为大家分享了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");

HttpSession 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("board-login.jsp");

} else {

if ((request.getParameter("check") != null) && (request.getParameter("check").equals("check"))) {

Cookie nameCookie = new Cookie("username", username);

Cookie pswdCookie = new Cookie("password", password);

nameCookie.setMaxAge(60 * 60);

pswdCookie.setMaxAge(60 * 60);

nameCookie.setPath("/");

pswdCookie.setPath("/");

response.addCookie(nameCookie);

response.addCookie(pswdCookie);

String value1 = "", value2 = "";

Cookie cookie = null;

Cookie[] cookies = request.getCookies();

if (cookies != null) {

for (int i = 0; i < cookies.length; i++) {

cookie = cookies[i];

if (cookie.getName().equals("username"))

value1 = 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 = "/MessageServlet")

public class MessageServlet extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

protected void doGet(HttpServletRequest 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留言功能_java web实现简单留言板功能相关推荐

  1. java jsp聊天系统_java web实现简单聊天室

    目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...

  2. java的简单数字时钟_Java实现的简单数字时钟功能示例

    本文实例讲述了java实现的简单数字时钟功能.分享给大家供大家参考,具体如下: 应用名称:java数字时钟 用到的知识:java gui编程,线程 开发环境:win8+eclipse+jdk1.8 功 ...

  3. php网页留言本过程,PHP实现简单留言本功能代码示例

    这篇文章主要为大家详细介绍了PHP简单留言本功能的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了PHP留言本功能的具体代码,供大家参考,具体内容如下 index.ph ...

  4. java 性能 优化_Java十大简单性能优化

    java 性能 优化 关于" web scale "这个流行词有很多炒作,人们花了很多时间来重新组织他们的应用程序体系结构,以使其系统"规模化". 但是什么是扩 ...

  5. javaweb mysql购物车_java web开发之实现购物车功能

    为了方便自己以后复习,所以写的比较仔细,记录下自己的成长. 既然是做购物车,那么前提条件是首先需要一系列商品,也就是要建一个实体,这里建了一个商品表. 通过查询在浏览器上显示 基本显示已经做好了,现在 ...

  6. java web 购物车_java web开发之实现购物车功能

    为了方便自己以后复习,所以写的比较仔细,记录下自己的成长. 既然是做购物车,那么前提条件是首先需要一系列商品,也就是要建一个实体,这里建了一个商品表. 通过查询在浏览器上显示 基本显示已经做好了,现在 ...

  7. java网页截图_Java实现的简单网页截屏功能示例

    本文实例讲述了Java实现的简单网页截屏功能.分享给大家供大家参考,具体如下: package awtDemo; import java.awt.AWTException; import java.a ...

  8. java签到程序设计_java redis 实现简单的用户签到功能

    业务需求是用户每天只能签到一次,而且签到后用户增加积分,所以把用户每次签到时放到redis 缓存里面,然后每天凌晨时再清除缓存,大概简单思想是这样的 直接看代码吧如下 @Transactional @ ...

  9. java web聊天室原理_java web实现简单聊天室

    目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...

  10. java手写一个分页的方法_java web手写实现分页功能

    现在很多流行的框架,都可以很快的把分页效果做出来,但是作为一名程序员你必须得知道手写分页的流程: 场景效果: 一.分页的思路 首先我们得知道写分页代码的思路,保持思路清晰,才能行云流水的去写代码,其实 ...

最新文章

  1. linux下java进程占用高问题分析过程
  2. 解压文件出错解决方法(invalid compressed data--format violated)
  3. 去掉动网广告“国内使用量最大的动网论坛”的方法
  4. CDH 5.16.1 + Redhat 7.0 部署(二)
  5. Java struts 2 源码阅读入门
  6. boost::hana模块使用 Hana 实现基本维度分析的示例
  7. 澳洲虚拟主机空间_澳洲空间|澳洲虚拟主机|澳洲主机|澳洲虚拟空间-万纵科技 www.xmwzidc.cn...
  8. Redis 如何实现主从复制
  9. npm 开发中 常用依赖包
  10. 【原】让两个DIV高度一样的Javascript函数
  11. (译)MySQL的10个基本性能技巧
  12. 玉米叶片病害识别与分类的优化密集卷积神经网络模型
  13. 泛微:移动办公专家 未来OA引爆京城
  14. 解决kali linux 和 win10 双系统时间不一致问题
  15. kd718和kb688参数_GJK SPP 5BGK AEC F04A tB9 D4 RMP
  16. 光耦w314的各引脚图_a3140光耦用什么代替
  17. 2021年征兵没有高考成绩查询,2021年征兵政策新调整,三种情况无法通过政审,快看看是不是自己...
  18. 002_wz_kaggle泰坦尼克号深度学习实现
  19. E5 2670 V1 C1 C2版本区别
  20. JavaWeb阶段考核总结

热门文章

  1. java h5 调用摄像头_基于百度AI使用H5实现调用摄像头进行人脸注册、人脸搜索功能(Java)...
  2. iOS crash dSYM
  3. JDK11下载与安装
  4. 三层交换机静态路由VLAN配置实例(华为)
  5. deeping安装Android studio
  6. Deeping操作系统配置tomcat并运行第一个Javaweb程序
  7. 本特利传感器9200-01-05-10-00
  8. multisim二极管_每日干货——光敏二极管传感器
  9. Java实现将任何编码方式的txt文件以UTF-8编码方式转存
  10. C Primer Plus 第四章 复习题编程练习 答案