java web实现简单留言板功能
本文实例为大家分享了javaweb实现简单留言板的具体代码,供大家参考,具体内容如下
一、目标
用户可以登录并记住密码进入留言板,添加留言,点击留言列表中的标题可显示该条留言全部内容。
二、相关知识
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类中)
packageboard; importjava.util.Date; publicclassMessage{ privateStringtitle;//标题 privateStringtime;//时间 privateStringusername;//用户名 privateStringtext;//内容 publicMessage(){} //初始化 publicMessage(Stringtitle,Stringtime,Stringusername,Stringtext){ this.title=title; this.time=time; this.username=username; this.text=text; } publicStringgetTitle(){ returntitle; } publicStringgetUsername(){ returnusername; } publicStringgetTime(){ returntime; } publicStringgetText(){ returntext; } }
BoardLoginServlet.java(用Cookie登录)
packageboard; importjavax.servlet.ServletException; importjavax.servlet.http.*; importjava.io.IOException; @javax.servlet.annotation.WebServlet(name="BoardLoginServlet",urlPatterns="/board.do") publicclassBoardLoginServletextendsHttpServlet{ protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ } protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("UTF-8"); HttpSessionsession=request.getSession(); Stringusername=request.getParameter("username").trim(); Stringpassword=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"))){ CookienameCookie=newCookie("username",username); CookiepswdCookie=newCookie("password",password); nameCookie.setMaxAge(60*60); pswdCookie.setMaxAge(60*60); nameCookie.setPath("/"); pswdCookie.setPath("/"); response.addCookie(nameCookie); response.addCookie(pswdCookie); Stringvalue1="",value2=""; Cookiecookie=null; Cookie[]cookies=request.getCookies(); if(cookies!=null){ for(inti=0;iWriteServlet.java(新增留言)
packageboard; importjavax.servlet.RequestDispatcher; importjavax.servlet.ServletContext; importjavax.servlet.ServletException; importjavax.servlet.annotation.WebServlet; importjavax.servlet.http.*; importjava.io.IOException; importjava.text.SimpleDateFormat; importjava.util.ArrayList; importjava.util.Date; importjava.util.List; @WebServlet(name="WriteServlet",urlPatterns="/write.do") publicclassWriteServletextendsHttpServlet{ //messages列表中存放Message类对象 publicListmessages=newArrayList (); protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charset=utf-8"); ServletContextcontext=request.getServletContext(); HttpSessionsession=request.getSession(); //用户名存储到session中 Stringusername=(String)session.getAttribute("username"); Stringtitle=request.getParameter("title"); Stringtext=request.getParameter("text"); //获取当前时间 SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd'at'HH:mm:ss"); Datedate=newDate(System.currentTimeMillis()); Stringtime=formatter.format(date); //在messages列表中添加留言对象 messages.add(newMessage(title,time,username,text)); context.setAttribute("messages",messages); Stringlist=newString(); //list中存放留言用户名+留言标题,标题为链接,可跳转到留言具体信息,并传参title list=username+":"+" "+title+""; Stringlists=newString(); //将留言标题列表信息存到上下文对象 if(context.getAttribute("lists")!=null){ lists=context.getAttribute("lists")+list+"
"; } else{ lists=list+"
"; } context.setAttribute("lists",lists); request.setAttribute("lists",lists); //转发 RequestDispatcherdispatcher=request.getRequestDispatcher("/board-title.jsp"); dispatcher.forward(request,response); } protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ } }MessageServlet.java
packageboard; importcom.sun.net.httpserver.HttpContext; importjavax.servlet.RequestDispatcher; importjavax.servlet.ServletContext; importjavax.servlet.ServletException; importjavax.servlet.annotation.WebServlet; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importjava.io.IOException; importjava.io.PrintWriter; importjava.util.ArrayList; importjava.util.List; @WebServlet(name="MessageServlet",urlPatterns="/MessageServlet") publicclassMessageServletextendsHttpServlet{ protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ } protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charset=utf-8"); ServletContextcontext=request.getServletContext(); Listmessages=newArrayList (); //获取列表 messages=(List )context.getAttribute("messages"); //获取链接中的参数title Stringtitle=request.getParameter("title"); Stringname=newString(); Stringdate=newString(); Stringtext=newString(); //遍历列表,查找该title的具体信息 for(Messagemessage: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 RequestDispatcherdispatcher=request.getRequestDispatcher("/board-message.jsp"); dispatcher.forward(request,response); } } (以上仅为部分代码)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。