jsp项目总结

本文总结了在JSP项目中遇到的一些典型问题及其解决方案,包括属性未找到错误、类型转换和异常处理。同时,讨论了聊天室功能的实现,涉及到在线用户共享、数据存储和私聊功能的细节,强调了Application和Session在不同场景的应用。

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

图书超市:

1、出错信息为:org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: Property 'BookName' not found on type cn.form.Book
一般原因为:
a、确实没有该字段
b、用了集合存储,而直接用集合调用,即:(集合.字段名)
c、用标签时,没写标签,直接用集合名调用。
d、本次错误为取值list中的bean值时,如果bean中的属性的开头字母为大写,则出错!应改为小写!
e、当把一个bean中的属性设为static时,比如一个map集合变量,${cart.value.bookname}就出现错误找不到map值。【另外需注意要加上value,否则也会错误找不到bookname。】


2、String.valueOf(session.getAttribute(str))是利用String的valueOf方法转换类型,可将double等数值类型的转化为字符串,(Sting)session.getAttribute(str) 是强制转换,是利用编译器进行的转换(直接用getString得到数据库的double类型数据时,会出现000023.45样式的字符串)


3、java.lang.NumberFormatException: For input string: "orderID",错误解释:int a=Integer.parseInt(“gfhsdijhgf”),这个方法里面的字符串参数必须全部是数字才得行.【但是我遇到此错误时因为编码问题:页面是gb2312传值到Servlet中,而Servlet又设置编码为request.CharacterEncoding("UTF-8")】


聊天室:可用一个对象中的某集合设置为static静态变量,所以只有一个实例,则全部用户共享一个实例,实现查看在线人数的功能。

用jsp与servlet实现,
1、首先,数据库的实现,登陆,注册的实现,
2、接下来,登陆后主界面分为top.jsp(网站信息LOGO等),main.jsp(聊天内容等),right.jsp(显示在线用户),bottom.jsp(编辑聊天内容,有表情,文字,颜色等功能)四个部分。
3、功能实现:显示在线用户,可用上面的方法,也可(可将登陆后的用户账号存储于map或其他集合中,再存储到Application中,当然也要存进session),在right.jsp显示。并在每个用户的姓名上添加链接,链接到一对一聊天界面,并附加该用户的账号参数,然后编辑完内容后连同信息一块提交。


【每个用户提交的内容都被接收,然后输出到这个页面,当用户定时刷新页面时,再访问这个页面,就获得更新后的页面】
【所有用户访问服务器上同一个页面,这个页面用Application输出聊天内容,并设置定时刷新,则此页面内容会更新到客户端。(试想??:如果用session输出,则用户也能所有内容,但session生命周期太短,关掉浏览器就没有了。仔细理解!并且,所有的页面都是在服务器,用户提交的任何数据,也由服务器request得到,并处理,显示处理跳转的界面,只对该用户有效,因为只有该用户发送请求,并按步骤跳转)】




私聊要求发言者和发言对象都能看到私聊的内容,另外,当私聊的对象是所有人时,则所有的人都能看到私聊的内容。因此,可以设置几个Application变量来保护私聊信息。例如,Application("Chat")保存私聊的内容,Application("Chatto")保存私聊的对象。当用户登陆聊天室时,使用Session("User")记录用户名,Session("Chat")记录该用户是否私聊,初始化为False,表示用户没有私聊;当用户要私聊时,责记录私聊信息,并将Session("Chat")设置为True,表示有私聊。其语句如下 
Application("chat")="<font color=blue>"&发言者&</font><l>悄悄的对<font color=#00bb00> "&私聊对象&"</font>说</l>:<font color=#0000aa>"&聊天内容&"</font><br><br> 
Application("chatto")=私聊对象用户名 
Application("owner")=发言者用户名 
Session("chat")=true 
当Application中保存信息后,用户浏览器端会判断Session("User")的值与Application("chatto")或者Application(“Owner”)的值是否相同,如果相同,则在浏览器端显示私聊内容;如果不相同,但Application(“chatto”)是所有人,则仍然显示私聊内容,否则不会显示任何私聊信息 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值