jsp模拟留言板

最近在做一个项目,遇到了许多问题,感觉到基础还是很重要的,所以重新回顾了以前的基础知识,今天向大家分享用jsp模拟留言板的功能吐舌头

首先先说下一jsp的内置对象application,它和session有一个共同点就是在Tomcat服务器启动的时候创建,在服务器关闭的时候自动销毁,下次启动时重新创建。

与session不同的是,session与客户一一对应,即当前客户本次访问web服务器时,session即被创建,不同的用户有着不同的session会话ID,可以通过保存当前会话使得用户在本站点各个页面跳转的时候保存用户信息,当然同一个客户在不同web站点访问时的session ID肯定是不同的啦吐舌头

而application是一个共享对象,即在当前站点可以供所有的客户使用,所以在application对象中保存信息时一定要注意安全,可以使用同步机制来控制,如果不加以控制,可能会出现类似数据库中的脏数据,举个简单的例子,比如下面要写的留言板的功能,其中发送数据时不对这个方法加锁,可能导致在一个客户留言的时候,另一个客户也可以对其内容修改,导致留言后的信息杂乱无章,因此使用了同步机制,在有的服务器中不支持application对象,因此可以手动创建,使用ServletContext,但它是一个抽象类,可以先使用ServletContext对其进行声明,然后使用getServletContext()进行实例化,,,,哈哈哈哈,说了这么多,终于要开始正文了,这里我只是简单的模拟一下留言板的功能,让数据保存在application对象中在前台进行显示,真正的留言板的数据要和数据库进行交互,这里就不做详解了哈。大笑

首先,下面是写留言的内容:writemessage.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>写留言</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <form action="sendsuccess.jsp" method="post">
    输入你的名字:<input type="text" name="name"/><br>
    输入你的留言标题:<input type="text" name="title"/><br/>
    输入你的留言:<textarea rows="4" cols="15" name="mail">
    </textarea><br>
   <input type="submit" name="submit" value="提交信息"/>
    </form>
    <form action="showmessage.jsp" method="post">
    <input type="submit" name="sub" value="查看留言板"/>
    </form>
  </body>
</html>


好了,当你提交留言后会跳转到另外一个页面提示留言成功,并且可以点击查看留言板:sendsuccess.jsp

<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'sendsuccess.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
   <%!
   Vector<String> v=new Vector<String>();
   ServletContext application;
   public synchronized void send(String s){
   application=getServletContext();
   v.add(s);
   application.setAttribute("mess", v);
   }
   
    %>
    <%
    String name=request.getParameter("name");
    String title=request.getParameter("title");
    String mail=request.getParameter("mail");
    if(name==null){
    name="guest";
    }
    if(title==null){
    title="无标题";
    }
    if(mail==null){
    mail="无内容";
    }
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String time=sdf.format(new Date());
    String s=name+"#"+title+"#"+time+"#"+mail;
    send(s);
    out.print("<script>alert('你的信息已经提交');</script>");
     %>
     <a href="wirtemessage.jsp">返回留言板</a> | <a href="showmessage.jsp">查看留言板</a>
  </body>
</html>

下面就是展示留言板内容的代码了,这里使用了一个数据结构vector向量,相信大家都不陌生吧,,,,,好吧上开始代码:showmessage.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>留言板</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <table border="1">
    <tr>
    <td>留言者姓名</td>
    <td>留言标题</td>
    <td>留言时间</td>
    <td>留言内容</td>
    </tr>
    <%
    Vector<String> v=(Vector)application.getAttribute("mess");
    for(int i=0;i<v.size();i++){
    out.print("<tr>");
    String message=v.elementAt(i);
    byte[] buffer=message.getBytes("ISO-8859-1");
    message=new String(buffer,"UTF-8");
    String a[]=message.split("#");
    for(int j=0;j<a.length;j++){
    	if(j<a.length-1){
    	out.print("<td>"+a[j]+"</td>");
    	}
    	else{
    	out.print("<td><TextArea row=3 cols=12>"+a[j]+"</TextArea></td>");
    	}
    }
    out.print("</tr>");
    }
     %>
    </table>
    <a href="wirtemessage.jsp">返回留言板</a>
  </body>
</html>
最后终于完成了留言板的功能,欢迎大神来指教,欢迎讨论 大笑 大笑


  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、设计目的 留言系统目前在各类网站中被广泛使用。通过综合运用JSP、Servlet、JavaBean、JDBC、MySQL和MVC + DAO等技术与方法,设计与实现一个留言管理系统,进一步理解和掌握Java Web编程开发的基本技术和方法,熟练使用开发工具。 二、课程设计内容 设计留言管理系统的目的是提供对留言的增加、删除、修改和显示的功能。 系统分前台和后台两个模块。 1)前台留言模块主要针对普通用户,按功能又分为以下模块。 (1) 发表留言(即添加留言) 普通用户可以在留言管理系统中随意留言,如果留言的字数太少如低于10个字符,系统将给出提示。 (2) 查看留言 可以浏览留言(即查看留言列表)、查看详细留言(即查看某条留言内容)、搜索留言(即查看符合条件的留言列表)、查看友情链接(即导航到别的网站)。 2)后台模块(管理模块)针对管理员提供操作,按功能又分为以下模块。 (1) 登录管理:需要输入管理员账号、口令和验证码,系统将验证、口令和验证码是否正确,如果验证成功,则进入管理员界面;否则,系统提示账号或密码错误的信息。 另外,登录后的管理员可以选择退出登录,进而退出管理界面。(实现提示:将退出请求提交给处理退出的Servlet,在该Servlet中将session失效,再将页面重定向到登录页面。) (2) 留言管理:可以查看所有的留言,可以增加留言(即回复留言)、修改留言、删除留言
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值