我写了个JSP用户通过SQL2005登录,但是发布后跳转出现了问题,以下是我代码:
//获取用户名
String name=request.getParameter("admin");
//获取密码
String powd=request.getParameter("mm");
//属性、加载JDBC驱动、连接
Connection con=null;
Statement st=null;
ResultSet re=null;
try {
Class.forName("com.miscrosoft.sqlserver.jdbc.SQLServerDriver");
con=DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;databaseName=cd","asd","");
st=con.createStatement();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
//SQL语句
String sql="select * from admin where admin='"+name+"' and mm='"+powd+"'";
try {
re=st.executeQuery(sql);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
if(re.next()){// 有匹配的用户名和密码,登陆成功
response.sendRedirect("htgl.jsp");
}
else{
response.sendRedirect("ht.jsp");
}
} catch (SQLException e) {
e.printStackTrace();
}
下面是出现的错误页面显示:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.NullPointerException
com.servlet.ht_servlet.doPost(ht_servlet.java:52)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.这个是第52行re=st.executeQuery(sql);
谢谢大家了……
//获取用户名
String name=request.getParameter("admin");
//获取密码
String powd=request.getParameter("mm");
//属性、加载JDBC驱动、连接
Connection con=null;
Statement st=null;
ResultSet re=null;
try {
Class.forName("com.miscrosoft.sqlserver.jdbc.SQLServerDriver");
con=DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;databaseName=cd","asd","");
st=con.createStatement();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
//SQL语句
String sql="select * from admin where admin='"+name+"' and mm='"+powd+"'";
try {
re=st.executeQuery(sql);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
if(re.next()){// 有匹配的用户名和密码,登陆成功
response.sendRedirect("htgl.jsp");
}
else{
response.sendRedirect("ht.jsp");
}
} catch (SQLException e) {
e.printStackTrace();
}
下面是出现的错误页面显示:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.NullPointerException
com.servlet.ht_servlet.doPost(ht_servlet.java:52)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.这个是第52行re=st.executeQuery(sql);
谢谢大家了……
解决方案 »
- 下载了tomcat源码来编译 org.eclipse.jdt.core.compiler 不存在
- quartz有状态Job总是只执行一次
- 在学网络编程的时候 遇到的一个小问题 请各位大虾指点一下
- 用DetachedCriteria分页和四个条件组合查询时的问题?
- 怎样插入jsp代码实现发布信息
- graphics2d 动态画图时,能不能也用MVC模式
- 有关jsp查询数据库返回值问题.初次在JSP发贴,大家关照一下.
- 页面问题
- 为何JSP中的<%@ PAGE LANGUAGE=JAVASCRIPT%> 而<%%>中的语法为JAVA??
- 一JSP网站,统一指定一个errorPage页面,统一处理异常,在指定的errorPage页面中,我想知道具体是哪个页面出错的,即想知道出错页面的具
- 将2张表的查询结果进行分页
- 在不修改其他系统的情况下如何实现SSO?
String powd=request.getParameter("mm"); //属性、加载JDBC驱动、连接
Connection con=null;
Statement st=null;
ResultSet re=null;
try {
Class.forName("com.miscrosoft.sqlserver.jdbc.SQLServerDriver");
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=cd","asd","");
st=con.createStatement();
String sql="select * from admin where admin='"+name+"' and mm='"+powd+"'";
re=st.executeQuery(sql);
if(re.next())// 有匹配的用户名和密码,登陆成功
{
response.sendRedirect("htgl.jsp");
}
else{
response.sendRedirect("ht.jsp");
}
} catch (Exception e) {
e.printStackTrace();
}
这句以前把你的con和sql打出来看看不就知道了,要多调试!!!
中的miscrosoft错了,应该是:microsoft
中的miscrosoft错了,应该是:microsoft
还有你没有给用户 Sql 数据库的(*密码*)还有给 你说,少用Statement,应该多用PreparedStatement对象执行sql语句,这样的效率更高些。
少个初始化
st=con.createStatement();
红色部分单词写错了
应该是microsoft
try {
Class.forName("com.miscrosoft.sqlserver.jdbc.SQLServerDriver");
con=DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;databaseName=cd","asd","");
st=con.createStatement();
} 你在try内判断一下st是否为空,在try外再判断一下试试
com.servlet.ht_servlet.doPost(ht_servlet.java:52)
中的miscrosoft错了,应该是:microsoft
try {
Class.forName("com.miscrosoft.sqlserver.jdbc.SQLServerDriver");
con=DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;databaseName=cd","asd","");
st=con.createStatement();
} 你在try内判断一下st是否为空,在try外再判断一下试试
re=st.executeQuery(sql);
System.out.println(re); //打印看看有没有。
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 怕错误就复制别人的试试,自己照着敲几遍就似了。
String name = request.getParameter("username");
String pwd = request.getParameter("password");
//out.println(name+pwd);
String sql ="select * from Info where username='"+name+"' and password='"+pwd+"'";
//out.println(sql);
Statement stm= null;
ResultSet rs =null;
try
{
stm = conn.createStatement();
rs = stm.executeQuery(sql);
if(rs.next())
{
session.setAttribute("username",name);
response.sendRedirect("index.html");
}
else
{
response.sendRedirect("index1.html");
}
}
catch(SQLException e)
{
e.printStackTrace();
}
我写的~能登录!
加载数据库驱动就没写出来了~你自己看看哪里错了嘛~
com.miscrosoft.sqlserver.jdbc.SQLServerDriver错了!
con.microsoft.sqlserver.jdbc.SQLServerDriver
中的miscrosoft错了,应该是:microsoft