一个jsp聊天室登陆(login.jsp)的错误问题(书上例子代码)

问题描述

这是原封不动导入到Myeclipse6.5里的代码,但是出错了,很奇怪,故咨询下各位,谢谢。<!--用page指令定义语言为java页面编码为utf-8--><%@pagelanguage="java"pageEncoding="utf-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>聊天用户登录</title><!--<linkrel="stylesheet"type="text/css"href="styles.css">--><scriptlanguage="javascript">//javascriptcheck函数,用于检查表单中输入的用户昵称和登录密码是否为空functioncheck(){if(document.form1.nickName.value==''){alert("用户昵称不能为空!");document.form1.nickName.focus();returnfalse;}elseif(document.form1.userPassword.value==''){alert("登录密码不能为空");document.form1.userPassword.focus();returnfalse;}elsereturntrue;}</script></head><body><TABLEalign="center"cellpadding="0"cellspacing="0"border="0"width="500"><tr><tdheight="100"colspan="2"style="font-size:18px;font-weight:bold"align="center">聊天用户登录</td></tr><!--定义一个form表单,表单提交的后台处理页面为chklogin.jsp--><!--以下form这一行有警告--><formaction="chklogin.jsp"method="post"name="form1"onSubmit="returncheck()"><tr><tdwidth="222"align="right">昵称:</td><tdwidth="278"><!--表单中的用户昵称输入框,name属性为nickName,用于后台处理页面接收用户输入的昵称--><inputtype="text"name="nickName"style="width:150"></td></tr><tr><tdcolspan="2"></td></tr><tr><tdalign="right">密码:</td><td><!--表单中的登录密码输入框,name属性为userPassword,用于后台处理页面接收用户输入的密码--><inputtype="password"name="userPassword"style="width:150"></td></tr><tr><tdcolspan="2"align="center"height="30"valign="bottom"><inputtype="submit"value="登录">&nbsp;&nbsp;&nbsp;&nbsp;<inputtype="reset"value="取消"></td></tr><!--下面那个/form说是找不到起始标签--></form><tr><tdheight="50"valign="bottom"colspan="2">本聊天系统无须注册,登录成功后系统将自动保存你的用户名和密码。</td></tr></TABLE></body></html>

解决方案

解决方案二:
对了,login.jsp可以打开运行,但是输入用户名和密码之后按确定跳入chklogin.jsp时就出错了。typeExceptionreportmessagedescriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest.exceptionorg.apache.jasper.JasperExceptionorg.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)javax.servlet.http.HttpServlet.service(HttpServlet.java:802)rootcausejava.lang.NullPointerExceptionnet.chat.CheckLogin.checklogin(CheckLogin.java:68)org.apache.jsp.chklogin_jsp._jspService(chklogin_jsp.java:82)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)javax.servlet.http.HttpServlet.service(HttpServlet.java:802)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)javax.servlet.http.HttpServlet.service(HttpServlet.java:802)noteThefullstacktraceoftherootcauseisavailableintheApacheTomcat/5.0.28logs.以上是错误,我真看不懂,真的很菜,望大家指导下
解决方案三:
问一下,这个到底是代码问题,还是eclipse问题,还是tomcat问题还是sql2005的问题呢?,现在不知道这四个里面哪个有问题,login.jsp是可以打开的.
解决方案四:
之前发错地方了,现在拷贝过来心急忘了把要问的高亮了。这个是高亮以后的(红色字的地方):<!--用page指令定义语言为java页面编码为utf-8--><%@pagelanguage="java"pageEncoding="utf-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>聊天用户登录</title><!--<linkrel="stylesheet"type="text/css"href="styles.css">--><scriptlanguage="javascript">//javascriptcheck函数,用于检查表单中输入的用户昵称和登录密码是否为空functioncheck(){if(document.form1.nickName.value==''){alert("用户昵称不能为空!");document.form1.nickName.focus();returnfalse;}elseif(document.form1.userPassword.value==''){alert("登录密码不能为空");document.form1.userPassword.focus();returnfalse;}elsereturntrue;}</script></head><body><TABLEalign="center"cellpadding="0"cellspacing="0"border="0"width="500"><tr><tdheight="100"colspan="2"style="font-size:18px;font-weight:bold"align="center">聊天用户登录</td></tr><!--定义一个form表单,表单提交的后台处理页面为chklogin.jsp--><!--以下form这一行有警告--><formaction="chklogin.jsp"method="post"name="form1"onSubmit="returncheck()"><tr><tdwidth="222"align="right">昵称:</td><tdwidth="278"><!--表单中的用户昵称输入框,name属性为nickName,用于后台处理页面接收用户输入的昵称--><inputtype="text"name="nickName"style="width:150"></td></tr><tr><tdcolspan="2"></td></tr><tr><tdalign="right">密码:</td><td><!--表单中的登录密码输入框,name属性为userPassword,用于后台处理页面接收用户输入的密码--><inputtype="password"name="userPassword"style="width:150"></td></tr><tr><tdcolspan="2"align="center"height="30"valign="bottom"><inputtype="submit"value="登录">&nbsp;&nbsp;&nbsp;&nbsp;<inputtype="reset"value="取消"></td></tr><!--下面那个/form说是找不到起始标签--></form><tr><tdheight="50"valign="bottom"colspan="2">本聊天系统无须注册,登录成功后系统将自动保存你的用户名和密码。</td></tr></TABLE></body></html>
解决方案五:
java.lang.NullPointerExceptionnet.chat.CheckLogin.checklogin(CheckLogin.java:68)68行有错,你把你的CheckLogin.java贴过来检查一下,空指针一般都是空对象或者数据库里面没有值等等原因导致
解决方案六:
我以前用Myeclipse6.5也遇到过这种问题,有时把form这段剪切,在复制就没问题了但是有时解决不了,不过部署到服务器是没问题的
解决方案七:
1.你这个页面报的错<!--下面那个/form说是找不到起始标签--></form>把<form></form>放到<table></table>外面就可以了2.空指针异常,可能是你前一个页面的的参数没得到。被转换成servlet的chklogin_jsp.java:82有错误,你可以到tomcat文件夹workCatalinalocalhost你的项目名orgapachejsp这个文件下面把chklogin_jsp.java打开看看第82行到底错在哪里了。还有CheckLogin.java这是你用来做什么的类?没提到过。
解决方案八:
嗯,form的问题解决了,下面是chklogin.jsp的代码,我也觉得是数据传输的问题,所以很纳闷<%@pagelanguage="java"import="java.util.*,net.chat.*"pageEncoding="UTF-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>聊天用户登录</title><metahttp-equiv="pragma"content="no-cache"><metahttp-equiv="cache-control"content="no-cache"><metahttp-equiv="expires"content="0"></head><jsp:useBeanid="check"class="net.chat.CheckLogin"/><body><%/*设置request的字符集为GB2312GB2312就是简体中文字符集,如果在这里不设置GB2312编码,所有的中文字符都会变为乱码。如果在这里需要使用繁体中文的话也会出现字符乱码的问题,将GB2312改为GBK可解决。*/request.setCharacterEncoding("GB2312");//获取用户昵称StringnickName=request.getParameter("nickName");//获取用户密码StringuserPassword=request.getParameter("userPassword");//将获取到的用户登录信息与数据库中保存的用户信息进行比较StringloginMsg=check.checklogin(nickName,userPassword);if(loginMsg.equals("SUCCESS_LOGIN")){//登录成功将昵称保存到session中session.setAttribute("_USER",nickName);//在session中添加一个登录成功的标记session.setAttribute("_LOGIN","_SUCCESS");//转到聊天室选择页面response.sendRedirect("chatRoomList.jsp");}elseif(loginMsg.equals("WRONG_PASSWORD")){out.println("你输入的用户名或密码错误,请检正后重新输入");//清除session中保存的登录信息if(session.getAttribute("_LOGIN")!=null)session.removeAttribute("_LOGIN");}elseif(loginMsg.equals("NONE_USER")){//将新用户信息保存到数据库中check.saveToDataBase(nickName,userPassword);//登录成功将昵称保存到session中session.setAttribute("_USER",nickName);//在session中添加一个登录成功的标记session.setAttribute("_LOGIN","_SUCCESS");//转到聊天室选择页面response.sendRedirect("chatRoomList.jsp");}%></body></html>
解决方案九:
发错了。。。那个是jsp,下面这个是javapackagenet.chat;importjava.sql.*;importjava.util.*;importjava.text.SimpleDateFormat;publicclassCheckLogin{/***检测用户登录信息*@paramStringuserName*用户登录的用户名*@paramStringuserPassword*用户登录的密码*@returnString*返回一个字符串:如果用户名已经在数据库存在并且用户输入的密码也正确返回字符串SUCCESS_LOGIN*如果用户名已经在数据库存在但是输入的密码不正确返回字符串WRONG_PASSWROD*如果用户名不存在返回字符串NONE_USER**/publicStringchecklogin(StringuserName,StringuserPassword)throwsSQLException,ClassNotFoundException{BaseConnconn=null;try{conn=newBaseConn();//创建一个用预处理的SQL语句Stringsql="select*fromuserInfowherenickName=?";//创建一个预处理SQL对象PreparedStatementps=conn.preparedStatement(sql);ps.setString(1,userName);//从数据库中查询该用户名是否在数据库存在ResultSetrs=conn.executeQuery();if(rs.next()){if(rs.getString("userPassword").equals(userPassword)){SimpleDateFormatcal=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");Stringtime=cal.format(newjava.util.Date());//修改用户的最后登录时间sql="updateuserInfosetlastLoginTime=?wherenickName=?";ps=conn.preparedStatement(sql);ps.setString(1,time);ps.setString(2,userName);conn.executeUpdate();return"SUCCESS_LOGIN";}elsereturn"WRONG_PASSWORD";}elsereturn"NONE_USER";}catch(SQLExceptionex){ex.printStackTrace();throwex;}catch(ClassNotFoundExceptionex){ex.printStackTrace();throwex;}finally{conn.closeDB();//关闭数据库连接,释放JDBC资源}}/***如果是新用户时,将用户登录用户名和密码保存到数据库中**/publicbooleansaveToDataBase(StringuserName,StringuserPassword)throwsSQLException,ClassNotFoundException{BaseConnconn=null;try{conn=newBaseConn();SimpleDateFormatcal=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");Stringtime=cal.format(newjava.util.Date());Stringsql="insertintouserInfo(nickName,userPassword,lastLoginTime,role)values(?,?,?,?)";PreparedStatementps=conn.preparedStatement(sql);ps.setString(1,userName);ps.setString(2,userPassword);ps.setString(3,time);ps.setInt(4,0);conn.executeUpdate();returntrue;}catch(SQLExceptionex){ex.printStackTrace();throwex;}catch(ClassNotFoundExceptionex){ex.printStackTrace();throwex;}finally{conn.closeDB();//关闭数据库连接,释放JDBC资源}}}
解决方案十:
importjava.util.*;这句话显示提示说没有从来没有被使用

时间: 2024-09-26 08:58:08

一个jsp聊天室登陆(login.jsp)的错误问题(书上例子代码)的相关文章

jsp聊天室的聊天页面!

问题描述 谁有jsp聊天室的聊天页面,有代码的?可以让哥们看看吗?谢谢 解决方案 解决方案二:上网搜搜挺多的

求助。。。关于JSP聊天室DISPLAY分帧的问题

问题描述 main.jap貌似没问题,但是display.jsp分帧一直显示不出..代码如下..求助..纠结了很久...main.jsp<%@pageimport="java.sql.*"%><%@pageimport="java.util.*"%><jsp:useBeanid="jspEx"scope="page"class="opendb.opendb"/><%

网络编程-求教如何编辑一个多线程聊天室

问题描述 求教如何编辑一个多线程聊天室 用c c++或者 html+ css+数据库+php 做一个 新人没有奖励 只求大神帮忙 教一下 解决方案 可以使用编程工具实现,具体你可以google下 解决方案二: 黑马程序员-多线程聊天室

listview-ListView 的问题,按照书上例子,仿写了一个,结果出问题了,请大家看看到底哪里出错了啊

问题描述 ListView 的问题,按照书上例子,仿写了一个,结果出问题了,请大家看看到底哪里出错了啊 先是有两个布局文件,一个是关于ListView控件的,另一个是我自己定的线性布局,实现的是一个字符旁边先是一个图样. xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent&

opengl画图-初学OpenGL,照着书上的代码画出来只有一个红色三角形

问题描述 初学OpenGL,照着书上的代码画出来只有一个红色三角形 去掉画三角形的代码也看不见四边形和圆形 #include #include #include #define NUM 200 //绘制圆时用的顶点数 GLfloat r=1.0f; //圆半径 void DrawSceneGL(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除颜色及深度缓存 glLoadIdentity(); glColor3f(1.0

如何设置浏览器直接请求的jsp只允许访问login.jsp

问题描述 其他的jsp不允许直接请求.就是限制用户能直接请求的是登录界面的jsp.其他的页面都是服务器发过来的 解决方案 解决方案二:可以过滤器实现,这个过滤器拦截所有请求路径把能访问的路径放进一个xml文件中在过滤器init的时候读取这个xml里面的路径,可以把这些路径放进list里面然后在遍历这个list判断大体思路就是这些解决方案三:楼主的意思是必须登录才能进入其他页面吧,如果不登录的话也自动跳转到login.jsp,LZ可以考虑使用session解决方案四:写个过滤器,检查用户是否登录,

java聊天室登陆的问题 谢谢了

问题描述 我们的大作业是编写一个模拟的聊天室我在运行服务器后直接运行两次客户端就可以实现互相的通信,但是登录两个不同的账号后能出现客户端界面,但是发送信息时没任何反应,不报错也不抛异常,不知道什么原因,希望能够得到帮助,先谢谢了!下面贴代码服务器:ChatServer.javapackagecom.cy.chat;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;impor

一个简单聊天室的建立.(供学习参考)

 经过一个阶段的asp学习,下面我们结合所学过的内容建立一个最简单的聊天室,虽然很简单,但是大家可以通过他来掌握一个聊天室建立的基本过程,并且可以不断的完善其功能.      下面介绍其主要步骤:       1,添加Global.asa文件里面的代码.这部分代码主要处理Application_onStart事件,在此事件中,定义了一个有15个元素的数据,并把它赋给了一个Application对象的属性.Global.asa文件的内容如下.<SCRIPT LANGUAGE="VBScrip

Flash/Flex学习笔记(53):利用FMS快速创建一个文本聊天室

先来看客户端fla的构成: 第一帧:登录界面 第一帧的代码: import flash.events.MouseEvent; import com.adobe.utils.StringUtil; import utils.Alert; stop(); var userName:String=""; Alert.init(stage); btnLogin.addEventListener(MouseEvent.CLICK,btnLoginClick); function btnLogin