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;i
WriteServlet.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);
}
}
(以上仅为部分代码)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。