JSP问题,请教各位大虾!!! 10

以下是登录界面的处理界面代码,判断并赋值用户权限等的。<%Stringlogname="",logpass="",purview="",username="";Strin... 以下是登录界面的处理界面代码,判断并赋值用户权限等的。
<%
String logname="",logpass="",purview="",username="";
String fr="";
logname = request.getParameter("logname").trim();
logpass = request.getParameter("logpass").trim();
purview = request.getParameter("purview").trim();
if(purview.equals("1")){
purview = "游客";
session.setAttribute("purview",purview);
session.setAttribute("id",-1);
response.sendRedirect("index2.jsp");
}else if(purview.equals("2")&&(rand.equals(input)) ){
purview = "学生";
fr = "st_user";
}else if(purview.equals("3")&&(rand.equals(input)) ){
purview = "教师";
fr = "te_user";
}else if(purview.equals("4")&&(rand.equals(input)) ){
purview = "管理";
fr = "ad_user";
}
session.setAttribute("purview",purview);

%>
当我在登录界面不输入用户名和密码,直接点登录,是可以跳转到index2.jsp首页的。
但是当我在登录界面输入用户名和密码,选择游客用户登录的时候(按理游客用户应该不判断)系统会抛出错误。具体如下:
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
org.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)
com.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:34)

root cause

java.lang.NullPointerException
org.apache.jsp.login_jsp._jspService(login_jsp.java:62)
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)
com.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:34)

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

我觉得问题可能出在游客id的赋值上。
SQL:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:MyDSN");
Statement stmt = conn.createStatement();
int id = 0;
String sql = "select * from "+fr+" where username='"+logname+"' and password='"+logpass+"'";
ResultSet rs = stmt.executeQuery(sql);
int rowscount=0;
try{
while(rs.next())
{
rowscount++;
id = rs.getInt("id");
}
}catch(Exception e){}
rs.close();
还有当我随便出入用户名和密码,点登录,会抛出另一个错误:
exception
javax.servlet.ServletException: [Microsoft][ODBC Microsoft Access Driver] FROM 子句语法错误。
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
...

root cause
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] FROM 子句语法错误。
sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
...

万望各位大虾指教,小弟急!!!
展开
 我来答
prince小羽
2007-10-28 · TA获得超过396个赞
知道小有建树答主
回答量:271
采纳率:50%
帮助的人:183万
展开全部
你SQL语句写错了
第一个是空指针异常
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zenkill
2007-10-28 · TA获得超过281个赞
知道小有建树答主
回答量:319
采纳率:0%
帮助的人:0
展开全部
java.lang.NullPointerException
你有很多地方会出空指针
比如:
purview = request.getParameter("purview").trim();
如果request.getParameter("purview")这个的是Null
比如:
if(purview.equals("1"))
如果purview是Null。
这些都要判断非NULL才可以用
或者改变写法,例如:if("1".equals(purview))

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] FROM 子句语法错误
这个肯定是sql语句错了
你把实际运行的sql打出来,看一下就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式