最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java web實現(xiàn)簡單留言板功能

 更新時間:2020年11月24日 11:36:41   作者:今天肝代碼了嗎  
這篇文章主要為大家詳細介紹了java web實現(xiàn)簡單留言板功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java web實現(xiàn)簡單留言板的具體代碼,供大家參考,具體內(nèi)容如下

一、目標

用戶可以登錄并記住密碼進入留言板,添加留言,點擊留言列表中的標題可顯示該條留言全部內(nèi)容。

二、相關(guān)知識

1、使用Cookie實現(xiàn)自動登錄

用戶第一次登錄網(wǎng)站,服務(wù)器將用戶名和密碼以Cookie的形式發(fā)送到客戶端。當(dāng)客戶之后再次訪問該網(wǎng)站時,瀏覽器自動將Cookie文件中的用戶名和密碼隨請求一起發(fā)送到服務(wù)器,服務(wù)器從Cookie中取出用戶名和密碼并且通過驗證。

2、java類的定義與使用

定義java類時注意屬性的定義、構(gòu)造方法的重寫,定義兩個方法,一個是訪問方法(getter),一個是修改方法(setter)。

三、實現(xiàn)思路

1、登錄

輸入用戶名、密碼登錄,對應(yīng)檢測登錄BoardLoginServlet
可實現(xiàn)記住登錄信息 Cookie實現(xiàn)
登錄成功顯示留言板標題列表頁面board-title.jsp,登錄失敗返回登錄頁面

2、顯示留言標題

標題列表為上下文變量lists,其中標題為鏈接,點擊可顯示留言具體信息界面(跳轉(zhuǎn)到MessageServlet處理)。

list = username+":"+"<a href='MessageServlet?title="+title+"'target='_parent'>"+title+"</a>";

頁面下方有新增留言的鏈接,點擊后跳轉(zhuǎn)到寫留言頁面

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

3、添加留言

輸入標題、內(nèi)容 post給WriteServlet

4、顯示留言具體信息

在MessageServlet中遍歷查找留言并傳遞變量,顯示留言信息在board-message.jsp

四、代碼實現(xiàn)

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>
 內(nèi)容:<input type="text" name="text"/><br>
 <input type="submit"/>
</form>

board-message.jsp

<h2>留言詳情</h2>
 用戶名:${name}<br>
 標題:${title}<br>
 內(nèi)容:${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;//內(nèi)容
 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");
  //獲取當(dāng)前時間
  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中存放留言用戶名+留言標題,標題為鏈接,可跳轉(zhuǎn)到留言具體信息,并傳參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);
 //轉(zhuǎn)發(fā)
  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");
  //獲取鏈接中的參數(shù)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;
   }
  }
  //將留言信息轉(zhuǎn)發(fā)到board-message.jsp
  RequestDispatcher dispatcher = request.getRequestDispatcher("/board-message.jsp");
  dispatcher.forward(request, response);



 }
}

(以上僅為部分代碼)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot創(chuàng)建攔截器過程圖解

    springboot創(chuàng)建攔截器過程圖解

    這篇文章主要介紹了springboot創(chuàng)建攔截器過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 深入了解Java中Volatile關(guān)鍵字

    深入了解Java中Volatile關(guān)鍵字

    這篇文章主要介紹了Java中Volatile關(guān)鍵字的相關(guān)知識,文章講解非常詳細,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java管道流實現(xiàn)線程間通信過程解析

    Java管道流實現(xiàn)線程間通信過程解析

    這篇文章主要介紹了Java管道流實現(xiàn)線程間通信過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • java如何將Object數(shù)組轉(zhuǎn)換為指定類型數(shù)組

    java如何將Object數(shù)組轉(zhuǎn)換為指定類型數(shù)組

    這篇文章主要介紹了java如何將Object數(shù)組轉(zhuǎn)換為指定類型數(shù)組,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 修改jvm-sandbox源碼導(dǎo)致線程安全分析

    修改jvm-sandbox源碼導(dǎo)致線程安全分析

    這篇文章主要為大家介紹了修改jvm-sandbox源碼導(dǎo)致線程安全分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Java在Map轉(zhuǎn)Json字符串時出現(xiàn)"\"轉(zhuǎn)義字符的解決辦法

    Java在Map轉(zhuǎn)Json字符串時出現(xiàn)"\"轉(zhuǎn)義字符的解決辦法

    當(dāng)一個Map被轉(zhuǎn)成Json字符串后,被添加到另一個Map中,會出現(xiàn)被加上“\”轉(zhuǎn)義字符的情況,這個時候該如何解決呢,下面就來和小編一起了解一下
    2023-07-07
  • java 代碼中預(yù)防空指針異常的處理辦法

    java 代碼中預(yù)防空指針異常的處理辦法

    個人在做項目時,對NullPointerException的幾點總結(jié),請網(wǎng)友拍磚?。。《喽嗵嵋庖?,
    2013-03-03
  • Java中的main函數(shù)的詳細介紹

    Java中的main函數(shù)的詳細介紹

    這篇文章主要介紹了Java中的main函數(shù)的詳細介紹的相關(guān)資料,main()函數(shù)在java程序中必出現(xiàn)的函數(shù),這里就講解下使用方法,需要的朋友可以參考下
    2017-09-09
  • Java使用String.format方法格式化字符串的示例詳解

    Java使用String.format方法格式化字符串的示例詳解

    在編程過程中,我們經(jīng)常需要創(chuàng)建格式化的字符串來滿足特定的需求,比如生成用戶友好的消息、構(gòu)建報告或是輸出調(diào)試信息,Java 提供了一個強大的工具——String.format 方法,本文給大家介紹了Java使用String.format方法格式化字符串的示例,需要的朋友可以參考下
    2024-11-11
  • Swagger-boostrap-ui如何配置用戶名密碼訪問

    Swagger-boostrap-ui如何配置用戶名密碼訪問

    這篇文章主要介紹了Swagger-boostrap-ui如何配置用戶名密碼訪問,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評論

九寨沟县| 武冈市| 孟津县| 鹤山市| 峨山| 山西省| 多伦县| 习水县| 兴业县| 威信县| 龙泉市| 东乡| 仙桃市| 哈巴河县| 同德县| 修水县| 二连浩特市| 乐都县| 梅州市| 丹阳市| 疏勒县| 阳泉市| 刚察县| 渭南市| 太保市| 柞水县| 河北省| 瓦房店市| 东乌珠穆沁旗| 佛教| 呼图壁县| 牙克石市| 江山市| 六安市| 陵川县| 晋城| 台山市| 秦皇岛市| 藁城市| 新兴县| 庆云县|