昨天发贴问题没有解决,今天再发希望能够解决
初学JSP有许多问题不懂,最近就有一个做登录的,在javabean中定义了两个类
public class ConnUtil {
public static Connection getuser() {
Connection conn = null;
try {
String url = "jdbc:odbc:news";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(url, "", "");
} catch (Exception e) { System.out.print(e.toString());
}
return conn;
} public static void closeConnection(Connection conn) {
try {
conn.close();
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
还有一个查询表的
public class UserDenglu {
Connection conn = ConnUtil.getuser();
public ResultSet getdentlu(Connection conn, HttpServletRequest request) {
ResultSet rs = null;
try {
String username = request.getParameter("username");
String password = request.getParameter("password");
Statement smt = conn.createStatement();
String sql = "select username,password from usersdenglu where username='"+username+"'";
sql+= "and password='"+password+"'";
smt.executeQuery(sql);
System.out.println(sql);
} catch (Exception e) {
System.out.println(e.toString());
}
return rs;
}
在页面中这样调用:
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
request.setCharacterEncoding("gb2312");
Connection conn = ConnUtil.getuser();
UserDenglu bean = new UserDenglu();
ResultSet rs = bean.getdentlu(conn, request);
if(rs.getString("Username")!=null && rs.getString("password")!=null){
if (rs.next()) {
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("homepage.jsp");
}
} else {
out.print("<script language=javascript>alert('用户名或密码错误!')");
}
%>
但是运行时说第一个if语句哪儿有问题;真的不知道怎么解决,麻烦各位高手帮忙看一下,是哪儿错呢?在下不胜感激,从控制台输出的SQL语句都是空值;麻烦各位解决;
我用的是access数据库,数据源名在上面已经定义,问题解决马上结贴
初学JSP有许多问题不懂,最近就有一个做登录的,在javabean中定义了两个类
public class ConnUtil {
public static Connection getuser() {
Connection conn = null;
try {
String url = "jdbc:odbc:news";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(url, "", "");
} catch (Exception e) { System.out.print(e.toString());
}
return conn;
} public static void closeConnection(Connection conn) {
try {
conn.close();
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
还有一个查询表的
public class UserDenglu {
Connection conn = ConnUtil.getuser();
public ResultSet getdentlu(Connection conn, HttpServletRequest request) {
ResultSet rs = null;
try {
String username = request.getParameter("username");
String password = request.getParameter("password");
Statement smt = conn.createStatement();
String sql = "select username,password from usersdenglu where username='"+username+"'";
sql+= "and password='"+password+"'";
smt.executeQuery(sql);
System.out.println(sql);
} catch (Exception e) {
System.out.println(e.toString());
}
return rs;
}
在页面中这样调用:
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
request.setCharacterEncoding("gb2312");
Connection conn = ConnUtil.getuser();
UserDenglu bean = new UserDenglu();
ResultSet rs = bean.getdentlu(conn, request);
if(rs.getString("Username")!=null && rs.getString("password")!=null){
if (rs.next()) {
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("homepage.jsp");
}
} else {
out.print("<script language=javascript>alert('用户名或密码错误!')");
}
%>
但是运行时说第一个if语句哪儿有问题;真的不知道怎么解决,麻烦各位高手帮忙看一下,是哪儿错呢?在下不胜感激,从控制台输出的SQL语句都是空值;麻烦各位解决;
我用的是access数据库,数据源名在上面已经定义,问题解决马上结贴
解决方案 »
- JPA使用中级联删除,出现了异常
- 问个问题,有关tomcat conf 文件夹下面的context.xml文件
- CSDN首页中的相关联新闻是如何实现的呢?
- 关于DNS解析的问题
- 关于JAVA 的各位前辈来帮忙 谢谢啦
- 在ASP中,使用Response.BinaryWrite()方法可以从数据库中获取图片数据并显示到客户端的浏览器中,那JSP中呢,有没有相类似的方法
- 一个程序的困惑!(叫板一个男/女程序员的困惑)
- 問個簡單的問題
- 页面在myeclipse启动的tomcat6.0.18正常,部署到单独tomcat6.0.37,执行DWR中方法直接ERROR
- Hibernate 一对多 再一对多的问题
- Struts 制作静态新闻列表
- 边写html,边可预览的小点的软件有吗?也可以JSP的
再就是,是否传过来的键值写错了,请检查一下。不过看你的样子好像没有用到Servlet,建议还是在Servlet里面调用Bean吧。
public class UserDenglu {
Connection conn = ConnUtil.getuser(); //这个不要,不然会出现连数据库2次。
public ResultSet getdentlu(Connection conn, HttpServletRequest request) {
ResultSet rs = null;
try {
String username = request.getParameter("username");
String password = request.getParameter("password");
Statement smt = conn.createStatement();
String sql = "select username,password from usersdenglu where username='"+username+"'";
sql+= "and password='"+password+"'";
smt.executeQuery(sql);//这里改为:rs = smt.executeQuery(sql);
System.out.println(sql);
} catch (Exception e) {
System.out.println(e.toString());
}
return rs;
}
if(rs.getString("Username")!=null && rs.getString("password")!=null){
if (rs.next()) {
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("homepage.jsp");
}
} else {
out.print("<script language=javascript>alert('用户名或密码错误!')");
}
access数据库直连用ODBC用这种模式:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;
if(rs.getString("Username")!=null && rs.getString("password")!=null){
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("homepage.jsp");
}
}
把页面调用代码再贴出来希望大家能够解决
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<% String username = request.getParameter("username");
String password = request.getParameter("password");
request.setCharacterEncoding("gb2312");
Connection conn = ConnUtil.getuser();
UserDenglu bean = new UserDenglu();
ResultSet rs = bean.getdentlu(conn, request);
while(rs.next()) {
if (rs.getString("username") != null && rs.getString("password") != null) {
if (rs.next()) {
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("homepage.jsp");
}
} else {
out.print("<script language=javascript>alert('用户名或密码错误!')");
} }
%>
这是在控制台上输出的sql语句:
select username,password from usersdenglu where username='null'and password='null'
select username,password from usersdenglu where username='null'and password='null'
public class UserDenglu {
public ResultSet getdentlu(Connection conn, String username,String password) {
ResultSet rs = null;
try {
Statement smt = conn.createStatement();
String sql = "select username,password from usersdenglu where username='"+username+"'";
sql+= "and password='"+password+"'";
smt.executeQuery(sql);
System.out.println(sql);
} catch (Exception e) {
System.out.println(e.toString());
}
return rs;
}jsp改为
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
request.setCharacterEncoding("gb2312");
Connection conn = ConnUtil.getuser();
UserDenglu bean = new UserDenglu();
ResultSet rs = bean.getdentlu(conn,username,password);
if (rs.next()) {
if(rs.getString("username")!=null && rs.getString("password")!=null){
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("homepage.jsp");
}
} else {
out.print("<script language=javascript>alert('用户名或密码错误!')</script>");
}
%>
smt.executeQuery(sql);
改为
rs = smt.executeQuery(sql);
否则你的rs永远都是Null;
2.不要用ResultSet rs = bean.getdentlu(conn,request);来传参
讲方法中形参改为 ResultSet rs = bean.getdentlu(conn,username,password);试试
username,password是你页面中取到的值
select username,password from usersdenglu where username='null'and password='null'
select username,password from usersdenglu where username='null'and password='null'
String password = request.getParameter("password");
这个地方改为:
String username = request.getParameter("username");
System.out.println("ddddddddddd:"+username);
String password = request.getParameter("password");
System.out.println("eeeeeeeeeee"+password);
把结果贴出来
说的好像有道理!
lz, 你先判断一下
String username = request.getParameter("username");
String password = request.getParameter("password");是不是为空,如果他们俩为空,他们俩如果为空,你执行的sql就如你上面所说的了!!!
eeeeeeeeeeenull
select username,password from usersdenglu where username='null'and password='null'
ddddddddddd:null
eeeeeeeeeeenull
select username,password from usersdenglu where username='null'and password='null'
应该时html的那个页面
<td height="24"><div align="right">用户名: </div></td> <td width="381" height="24"><input name="username" type="text" id="username">
<a href="zhuce.jsp">还没注册?</a></td>
</tr><tr>
<td height="20"><div align="right">密码:</div></td>
<td><input name="password" type="password" id="password"></td>
</tr>
<form> 部分,还有<form> 中action所对应的类!!
<%@ page import="java.sql.ResultSet" %>
<%@ page import="com.gxjd.zhangl.ConnUtil" %>
<%@ page import="com.gxjd.zhangl.UserDenglu" %>
<%--
Created by IntelliJ IDEA. User: user
Date: 2007-6-4
Time: 15:30:55
To change this template use File | Settings | File Templates.--%>
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<% String username = request.getParameter("username");
String password = request.getParameter("password");
request.setCharacterEncoding("gb2312");
Connection conn = ConnUtil.getuser();
UserDenglu bean = new UserDenglu();
ResultSet rs = bean.getdentlu(conn,request);
if(rs.next()) {
if (rs.getString("username") != null && rs.getString("password") != null) {
if (rs.next()) {
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("homepage.jsp");
}
} else {
out.print("<script language=javascript>alert('用户名或密码错误!')");
}
}%>
<html>
<head><title>Simple jsp page</title>
<script language="javascript" type="text/javascript">
function isfull(){
if(document.form1.username.value==""||document.form1.password.value=="")
{
alert("请输入用户名或密码!");
return false;
}}
</script>
<style type="text/css">
<!--
.style3 {
font-size: 45px;
font-family: Arial, Helvetica, sans-serif;
} a:link {
color: #00BFFF;
text-decoration: none;
} a:visited {
text-decoration: none;
} a:hover {
text-decoration: underline;
color: #FF0000;
} a:active {
text-decoration: none;
} -->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body>
<form name="form1" method="post" action="homepage.jsp" onSubmit="return isfull(this)">
<table width="750" height="478" border="1" align="center" bordercolor="#2A9F00" bgcolor="#EAEAEA">
<tr>
<td height="184" colspan="2"><div align="center"><span class="style3">用户登录</span></div></td>
</tr>
<tr>
<td height="24"><div align="right">用户名: </div></td> <td width="381" height="24"><input name="username" type="text" id="username">
<a href="zhuce.jsp">还没注册?</a></td>
</tr>
<tr>
<td height="20"><div align="right">密码:</div></td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr>
<td height="24"><div align="right">
<p>
<input type="submit" name="Submit" value="提交">
</p>
</div></td>
<td height="24"><blockquote>
<p>
<input type="reset" name="Submit" value="重置">
</p>
</blockquote></td>
</tr>
<tr>
<td height="211" colspan="2"> </td>
</tr>
</table>
</form>
</body>
</html>
<%ConnUtil.closeConnection(conn);%>
这里把action="homepage.jsp" 改为action="你这个文件的文件名"
if (rs.getString("username") != null && rs.getString("password") != null) {
if (rs.next()) {
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("homepage.jsp");
}
} else {
out.print("<script language=javascript>alert('用户名或密码错误!')");
}
}
这里有问题
改为:
if(rs.next()) {
if (rs.getString("username") != null && rs.getString("password") != null) {
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("homepage.jsp");
} else {
out.print("<script language=javascript>alert('用户名或密码错误!')");
}
}