14.
15.
16.
用户从登陆页面进入聊天室时,如果登录失败则显示出错原因。
图6-2用户名或密码为空
从界面获取数据,将数据封装在UserVo中,将UserVo作为一个整体的对象传递给Dao层,在其Dao层,根据传递过来的数据从数据库中进行查找,如果数据库中存在,刚登录成功,否则提示登录错误。
实现登录界面验证的相关代码为:
(user.action)
1.publicvoidlogin(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
2.UserVouser=newUserVo();
3.Stringuser_name=newString(request.getParameter("loginname").getBytes("ISO-8859-1"),"utf-8");
4.user.setUser_name(user_name);
5.user.setUser_pwd(request.getParameter("loginpwd"));
6.try{
7.intusertype=service.queryUser(user);
8.if(usertype>0){
9.java.util.Datenowdate=newjava.util.Date();
10.Stringchattime=nowdate.toLocaleString();
11.InOnLineUserVovo=newInOnLineUserVo();
12.vo.setUsername(user_name);
13.vo.setChatroom("1");
14.vo.setLogintime(chattime);
15.request.getSession().setAttribute("username",user.getUser_name());
16.request.getSession().setAttribute("usertype",usertype);
17.response.sendRedirect("frame.jsp");
18.intflag=service.add_onlineuser(vo);
19.return;}else{//ʧ��ת��Login.jsp
20.response.getWriter().println("");
1.}
ii.}catch(Exceptione){
1.e.printStackTrace();
UserDao对应的代码为:
publicintqueryUser(UserVouser){
//TODOAuto-generatedmethodstub
Connectionconn=ConnTools.conn;;
intcount=0;
try{
PreparedStatementstmt=conn.prepareStatement(Constants.QUERY_USER);
stmt.setString(1,user.getUser_name());
stmt.setString(2,user.getUser_pwd());
ResultSetrs=stmt.executeQuery();
if(rs.next()){
count=1;
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}/*finally{
ConnTools.close(conn);
}*/
returncount;
}
验证成功后进入到的主界面
图6-3聊天室主界面
系统的主界面是一个框架页面frame.jsp,定义如下:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
谢谢你的支持!
14.
15.
16.
此框架页面由四部分组成:
●左边的框架,用来显示各种功能,打开的网页文件为:
left.jsp
●上面的框架,用来显示欢迎聊天者进来聊天,打开的网页文件为:
head.jsp。
●中间框架:
其本身是一个frame框架,为发送、接收信息。
打开的网页文件为send.jsp;receive.jsp
●右边的框架:
用来显示所有在线聊天用户的信息,打开的网页文件为:
right.jsp。
6.2用户注册模块设计
该模块的主要作用是实现用户注册。
当用户输入注册信息内容时,系统会根据用户输入的内容通过ajax进行验证,验证成功后,提示用户注册成功,否刚提示注册失败,返回到登录界面。
用户注册页面:
实现用户注册的及ajax验证的相关代码为:
//创建XHR
functioncreateXHR(){
varXHR;
if(window.XMLHttpRequest){
XHR=newXMLHttpRequest();//非IE
}elseif(window.ActiveXObject){
try{
XHR=newActiveXObject("Msxml2.XMLHTTP");//新的IE
}catch(e){
XHR=newActiveXObject("Microsoft.XMLHTTP");//旧的IE
}
}
returnXHR;
}
//通过编码查询
functiongetValue(loginname){
varloginname=document.f.loginname.value;
//获取XHR对像
varXHR=createXHR();
//alert(XHR);
varurl="user.do?
method=validate_User&users_name="+loginname+"&flag="+Math.random();
XHR.open("get",url,true);
varspan=document.getElementById("span");
//通过回调函数监听与服务端通信的状态onreadystatechange
XHR.onreadystatechange=function(){
if(XHR.readyState==4&&XHR.status==200){
varflag=XHR.responseText;
if(flag>0){
span.innerHTML="
";
}else{
span.innerHTML="
";
}
span.style.display="block";
}
};
XHR.send(null);}
functionvalidate_Pwd(){
varpassword=document.f.loginpwd.value;
varpassword_1=document.f.loginpwd1.value;
varspan_pwd=document.getElementById("span_pwd");
if(password!
=password_1){
span_pwd.innerHTML="
";
}else{
span_pwd.innerHTML="
";
}
span_pwd.style.display="block";
}
functionvalidate_email(mail){
var_reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
if(_reg.test(mail))
{
span_email.innerHTML="
";
}
else
{
span_email.innerHTML="
";
}
span_email.style.display="block";
}
用户注册
none"> none"> none"> 6.3聊天者发言模块设计 该模块的主要作用是实现聊天者以各种表情、各种身份、不同颜色的文字对不同的用户发送聊天信息。 当用户以正确的用户名和密码登录聊天室后就可以通过聊天者发言的功能,发送聊天信息。 实现发言功能的程序为send.jsp。 其相关代码为: intwordslen=0; Stringlinewords=""; Vectorchatwords=(Vector)application.getAttribute("chatwords"); Stringfontcolor=request.getParameter("fontcolor"); Stringphoto=request.getParameter("photo"); if(fontcolor==null){fontcolor="black";} copyright@ 2008-2022 冰豆网网站版权所有 经营许可证编号:鄂ICP备2022015515号-1