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+":"+"<a href='MessageServlet?title="+title+"'target='_parent'>"+title+"</a>";

页面下方有新增留言的链接,点击后跳转到写留言页面

<a href="board-write.jsp" rel="external nofollow" rel="external nofollow" >新增留言</a>

3、添加留言

输入标题、内容 post给WriteServlet

4、显示留言具体信息

在MessageServlet中遍历查找留言并传递变量,显示留言信息在board-message.jsp

四、代码实现

board-login.jsp

<form action="board.do" method="post">
 <br>
 <h1 class="text" >登录界面</h1>
   昵称:<input type="text" name="username" value="${cookie.username.value}"/><br>
   密码:<input type="password" name="password" value="${cookie.password.value}"/><br><br>
   <input type="checkbox" name="check" value="check"/>记住密码<br> <br>
   <input type="submit" value="登录"/>
   <input type="reset" value="取消"/>
</form>

board-title.jsp

<h2>留言板</h2>
 ${lists}
<a href="board-write.jsp" rel="external nofollow" rel="external nofollow" >新增留言</a>

boarrd-write.jsp

<form action="write.do" method="post">
 标题:<input type="text" name="title"/><br>
 内容:<input type="text" name="text"/><br>
 <input type="submit"/>
</form>

board-message.jsp

<h2>留言详情</h2>
 用户名:${name}<br>
 标题:${title}<br>
 内容:${text}<br>
 时间:${date}<br>

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<Message> messages = new ArrayList<Message>();
 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+":"+"<a href='MessageServlet?title="+title+"'target='_parent'>"+title+"</a>";
  String lists = new String();
  //将留言标题列表信息存到上下文对象
  if(context.getAttribute("lists")!=null){
   lists = context.getAttribute("lists") + list + "<br>";
  }
  else{
   lists = list + "<br>";
  }
  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<Message> messages = new ArrayList<Message>();
  //获取列表
  messages = (List<Message>)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);

 }
}

(以上仅为部分代码)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java实现留言板功能实例

    JSP+JavaBean的留言板技术 <span style="font-size:16px;">Messages.html <HTML></span><span style="font-size:16px;"><HEAD> <TITLE> message board </TITLE></HEAD> <BODY> <center>留言板</c

  • java web实现简单留言板功能

    本文实例为大家分享了java web实现简单留言板的具体代码,供大家参考,具体内容如下 一.目标 用户可以登录并记住密码进入留言板,添加留言,点击留言列表中的标题可显示该条留言全部内容. 二.相关知识 1.使用Cookie实现自动登录 用户第一次登录网站,服务器将用户名和密码以Cookie的形式发送到客户端.当客户之后再次访问该网站时,浏览器自动将Cookie文件中的用户名和密码随请求一起发送到服务器,服务器从Cookie中取出用户名和密码并且通过验证. 2.java类的定义与使用 定义java

  • php+Memcached实现简单留言板功能示例

    本文实例讲述了php+Memcached实现简单留言板功能.分享给大家供大家参考,具体如下: MyPdo.php <?php class MyPdo{ private $pdo; function __construct() { $this->pdo = $this->getPdo(); } /** * CreatePDO * * @return PDO */ public function getPdo() { $dbms='mysql'; $dbName='testdb'; $use

  • PHP实现的简单留言板功能示例【基于thinkPHP框架】

    本文实例讲述了PHP实现的简单留言板功能.分享给大家供大家参考,具体如下: 入口文件  文件名 index.php <?php // 应用入口文件 // 检测PHP环境 if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !'); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false define('APP_DEBUG',True);//开发调试模式 //define('APP_DEB

  • 基于vue和bootstrap实现简单留言板功能

    本文实例为大家分享了vue实现简单留言板功能的具体代码,供大家参考,具体内容如下 作为一个刚开始接触vue的前端小白,我想在这里记录一些学习过程,希望和大家一起进步,如有不妥处之处,请多多指教呦. 今天呢,是我学习vue的第二天,我想制作一个简易的留言板.功能很简单,就是数据的增删改查,下面开始步入正题: 大致布局如下: 1.html布局 如果大家不想自己去写css样式,使用bootstrap框架是一个很好地选择,它提供了一套响应式.移动设备优先的流式栅格系统. <div id="app&

  • java web实现简单登录注册功能全过程(eclipse,mysql)

    目录 1.工程文件 2.DBBean.java 3.login.jsp 4.check.jsp 5.zhuce.jsp 6.zhuceck.jsp 7.success.jsp 8.zhucesu.jsp 9.数据库创造 总结 1.工程文件 基本的文件布局,没使用任何css文件,就是简单实现登录注册,页面没有做任何美化: 使用的是MySQL8.0.12,8一下的mysql链接代码有微小差别,网上教程基本都是8一下的,随便找找就能找到: 2.DBBean.java package Bean; imp

  • JS实现简单留言板功能

    本文实例为大家分享了JS实现简单留言板的具体代码,供大家参考,具体内容如下 言归正传,之前的案例相信大家都已经完全弄清楚了,还记得我们之前统计字数的那个案例吗?忘记的可以再去翻阅一下,今天就是在这个方法的基础上,把它变成一个留言版,就像我们之前的评论一样,是不是很期待呢?先来看一下效果图 输入昵称,选择头像,输入留言,点击广播就能够在下面显示出来了,是不是很nice呢,具体怎么实现的呢,我们来看代码 <!DOCTYPE html> <html lang="en">

  • 简单实现PHP留言板功能

    本文实例为大家分享了PHP留言板功能的具体实现代码,供大家参考,具体内容如下 HTML代码 <div class="continer" > <div class="head" style="background-color:rgb(217,237,247);height:50px;vertical-align:middle"><h2 style="color: rgb(81,117,114)"&g

  • php实现留言板功能(代码详解)

    简单的PHP留言板制作 做基础的留言板功能  需要三张表: 员工表,留言表,好友表 首先造一个登入页面: <form action="drcl.php" method="post"> <div>帐号:<input type="text" name="zhang"/></div> <div>口令:<input type="text" name=

  • php实现留言板功能

    这个小小的留言板功能适合班级内或者公司内部之间的讨论,对话和留言,非常的方便,更重要的是无需网络,对于公司管理层来说是非常乐于常见的, 下面是这个留言板的写法: 1 首先是登录页面: <form action="chuli.php" method="post"> <div style="margin-left: 500px; margin-top: 200px; height: 250px; width: 250px">/

  • 使用PHP开发留言板功能

    首先我不是一名开发人员,只是一名小小的运维工程师,PHP是我自己喜欢的一门开发语言,所以我偶尔也会敲一些代码,写一些案例.今天我给大家分享的是使用PHP开发的留言板,留言板功能不全所以请大家见谅,也不知道满不满足企业开发的要求,大家看看就可以了,有什么不足的请大家提出谢谢! 下面是效果图,没有进行CSS美化,比较简单请见谅: 留言板 我使用的环境是:LNMP,数据库名称为:test,表名为:lyb,用户名和密码均为:root index.php文件内容:(用户访问的首页文件) <?php inc

随机推荐