<%@ page language="java" import="java.util.*,java.sql.*,java.net.*;" pageEncoding="UTF-8"%>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url="jdbc:mysql://localhost:3306/Library_DB?";
String user="root";
String password="";
Connection conn= java.sql.DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();// 获取输入的用户名密码,在数据库的admin表中进行查找,以判断是否输入可以正确。
String username = request.getParameter("username");
String pwd = request.getParameter("password");
String sql = "select * from admin where username='"+username+"' and password='"+pwd+"'";
ResultSet rs = stmt.executeQuery(sql);if (rs.next())
{
// 设置session
HttpSession hs = request.getSession(true);
hs.setMaxInactiveInterval(6000); //设定用户最大发呆时间为6000s
// 将会话id和用户名传给下一个会话(session)
hs.setAttribute("LoginSessionID", hs.getId());
hs.setAttribute("username", username); stmt.close();
conn.close();
%>
<jsp:forward page="MainFrame.jsp"></jsp:forward>
<%
}else
{
stmt.close();
conn.close();
%>
<jsp:forward page="LoginError.jsp"></jsp:forward>
<%
}
%>
麻烦大家指点为什么每次发布都先跳转到LoginError.jsp错误页面啊。
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url="jdbc:mysql://localhost:3306/Library_DB?";
String user="root";
String password="";
Connection conn= java.sql.DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();// 获取输入的用户名密码,在数据库的admin表中进行查找,以判断是否输入可以正确。
String username = request.getParameter("username");
String pwd = request.getParameter("password");
String sql = "select * from admin where username='"+username+"' and password='"+pwd+"'";
ResultSet rs = stmt.executeQuery(sql);if (rs.next())
{
// 设置session
HttpSession hs = request.getSession(true);
hs.setMaxInactiveInterval(6000); //设定用户最大发呆时间为6000s
// 将会话id和用户名传给下一个会话(session)
hs.setAttribute("LoginSessionID", hs.getId());
hs.setAttribute("username", username); stmt.close();
conn.close();
%>
<jsp:forward page="MainFrame.jsp"></jsp:forward>
<%
}else
{
stmt.close();
conn.close();
%>
<jsp:forward page="LoginError.jsp"></jsp:forward>
<%
}
%>
麻烦大家指点为什么每次发布都先跳转到LoginError.jsp错误页面啊。
解决方案 »
- 有银行开发经验或者熟悉ISO 8583协议的请进!急需帮助!!!
- 手机网站的问题?????
- 关于“No getter method for property: "order_ID " of bean: "show"”的问题
- 紧急求教一个struts的问题
- JasperReport的在iframe问题
- HTTP 500 -
- 急!(B/S在线聊天问题)客户端向服务器发出请求后,服务器响应的实例化类(通过awt写JFRAME聊天窗口)怎样才能响应到客户端?
- HTTP Status 404 !!!!求救
- 请问:NetBeans 中文问题
- 关于JSP中文件包含的问题:
- 关于qooxdoo的用法
- Struts2拦截器fileupload与execAndWait的问题
用户名、密码是否正确嘛!你mysql数据库没设密码?
有结果就是你获取connection那里错了
}
rs.next()为false了,肯定就执行else里面的代码啊,你应该在if上一行加boolean flag=true;
在if{}里加入flag=false;else去掉,换if(flag){jsp:forword},连接的关闭放到最后。
System.out.println("Connection : " + conn) ; //看看数据库连接连上了没有
PreparedStatement stmt = conn.createStatement();// 获取输入的用户名密码,在数据库的admin表中进行查找,以判断是否输入可以正确。
String username = request.getParameter("username");
String pwd = request.getParameter("password");
String sql = "select * from admin where username=? and password=?";
pstmt = conn.preparestatement(sql);pstmt.setString(1, username) ;
pstmt.setString(2, pwd) ;ResultSet rs = pstmt.executequery();
sql语句这样写:
String sql="select *from admin where username=? and password=?";
替换问号用:
ps.setString(1,username);
ps.setString(2,pwd);你这样再试试。
再者,你做if else语句之前最好判断一下rs是否为空,如果为空的话直接跳转到错误页面
不为空的话,在用if语句跳转。比较严谨的就是执行之前要判断rs是否为null
PreparedStatement一是速度快,二是解决了sql注入的问题