jsp制作简易留言版

这篇博客介绍了如何使用jsp创建一个简易的留言版。讲解了如何利用Vector类存储留言,通过application对象实现数据共享,使用StringTokenizer进行字符串分割,以及通过SimpleDateFormat格式化日期。在实现过程中,提到了类型转换错误和泛型使用的问题,并给出了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:
学习目标
理解application
知识点:
1:vector类
这个就是实现数组的类
要使用这个类要在jsp页面加入这个
<%@ page import="java.util.*"%>
常用方法如下:
Boolean add(Object e)
这个方法是将指定元素添加到末尾,有顺序的,e就是要添加的
==========
Object elementAt(int index)
index表示一个索引,取值范围在0和vector.size()之间的任意整数
===
自我理解,第一个方法可以添加内容,而第二个方法就是可以获取我们想要的内容,类似于一个书架,我们想取哪本书
=============
代码实现
==
2:
application对象
常用方法
getAttribute(String name)
setAtrribute(String name,Object object)
这个两个方法类似与session的方法,session也有这两个方法
两者联系起来无非就是创建与设置,想要输入框与application有联系,就必须创建然后获取
比如
<input type="text" name="Mess">
这个时候转为application就需要上面2个方法
Vector v=(Vector)application.getAttribute("Mess");
而vector是类似于数组,两者结合如何使用呢
1:
首先创建一个vector对象,结合application获取input属性
Vector v=(Vector)application.getAttribute("Mess");
然后循环遍历
for(int i=0; i<v.size();i++)
然后用Object elementAt(int index)方法
{
String message=(String)v.elementAt(i);//取出内容字符串,给这个变量一个名字,比如他是盒子(数组)里的红球,我们就戴着手套(message)
把他取出来,而i就相当于这个方法的索引,也就是我们需要的内容(红球)
}
================
3:
StringTokenizer类
这个类字面理解就是分解字符串
方法
StringTokenizer(String s)
这个方法就是一个盒子,里面装有很多东西,比如空格符,换行符等等
2:
StringTokenizer(String s,String delim)
这个就只有一个分割符
使用如下
当我们取出红球之后,就要脱下手套,用篮子代替
StringTokenizer fenxi=new StringTokenizer(message,"#");//将字符串用#进行分割
接着如何输出分割后的内容,当我们拿出红球之后,必须要一个桌子(while循环)来展示
所以
while(fenxi.hasMoreTokens){
String str=fenxi.nextToken();//肯定不止一个小红球,所以我们就用建一个管子(str),下一个球就流进去
byte a[] str.getBytes("ISO-8859-1");//byte是一个字节,创建一个字节数组,然后得到我们内容的字节,转换格式
str=new String(a);//创建一个字符串对象
out.print("<br>"+str)
}
===========================
留言板想要获取日期
SimpleDateFomat类
常用方法
SimpleDateFormate(String pattern)
这个方法表示默认的日期格式
StringBuffer format(Date date,StringBuffer toAppendTo,FieldPosition pos)
这个方法就比较灵活
将给的的格式转换为日期/时间格式
然后将结果添加到给定的StringBuffer
具体使用
首先创建一个对象
Date messageDate=new Date();
SimpleDateFormat myformat=new SimpleDateFormat("yyy-MM-dd hh:mm:ss");
String messtime= myformat.format(messageDate);
自我理解,创建这个方法有了日期,就用让他相当于字符串显示出来,于是就调用format这个方法,首先要让系统识别是时间,所依把date放进去
=============
2:
难点突破
实现一个留言板
一个UI界面,一个逻辑页面,一个展示出来的界面
逻辑界面主要用数组(Vector),然后结合application连接起来,还要用elementAt(i)的方法将内容循环的内容变成索引
接着用StringTokenizer分割符的方法,获取内容
获取了内容然后转换为电脑可以识别的字符byte
获取了内容如何展示呢?
show.jsp

3:
具体实现
实现过程中程序报错
 1:Unchecked cast from Object to Vector<String>类型转换错误
2: Vector is a raw type. References to generic type Vector<E> should be---=应该用泛型
     parameterized
===
    Vector<String> v =(Vector<String>)application.getAttribute("message");//两者有了联系  //
这个代码报错
rows是vector<String>对象,里面只能存放String类型
所以
index代码
<center>简易留言板<br><hr>
      <form action="admin.jsp" method="post">
              <table border="1" bgcolor="pink">
                  <tr><td>标题</td><td><input type="text" name="title" ></td></tr>
                  <tr><td>发言人</td><td><input type="text" name="author" ></td></tr>
                  <tr><td>留言内容</td><td><textarea name="message" rows="5" cols="20"></textarea></td></tr>
                  <tr><td colspan="2"><center><input type="submit" name="submit" value="提交"></center></td></tr>
              </table>
      </form>
   </center>
======
逻辑代码
 <%
                String message=String.valueOf(request.getParameter("message"));//这个是输入文本框的值
                application.setAttribute("m",message);
                @SuppressWarnings("unchecked")
                Vector<String> v =(Vector<String>)application.getAttribute("m");//两者有了联系  //
               for(int i=0; i<v.size();i++){
               String messagefor=(String)v.elementAt(i);//还要用elementAt(i)的方法将内容循环的内容变成索引
               //接着用StringTokenizer分割符的方法,获取内容
               StringTokenizer fenxi=new StringTokenizer(messagefor,"#");
               //要获取内容还要用while循环
               while(fenxi.hasMoreElements()){
                   String str=fenxi.nextToken();//要获取下一个的值
                   byte a[] =str.getBytes("ISO-8859-1");
                   str=new String(a);
                   out.print("<br>"+str);
               }
           }
    %>
==============
【Vector<String> v =(Vector<String>)n;//两者有了联系  //】这行报错待解决
报错
ype safety: Unchecked cast from Object to Vector<Object>
对象类型不匹配
解决
在Vector<Object> v =(Vector<Object>)application.getAttribute("m");之前加上一句
@SuppressWarnings("unchecked")======这个表示忽略的意思

一、设计目的 留言系统目前在各类网站中被广泛使用。通过综合运用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、付费专栏及课程。

余额充值