//登录
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
Index
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<form name="form1" method="post" action="checkservlet">
<div align="center">
<p>用户名称:
<input type="text" name="userName">
</p>
<p>用户密码:
<input type="password" name="userPwd">
</p>
<p>
<input type="submit" name="Submit" value="提交">
</p>
</div>
</form>
<p> </p>
</body>
</html>
//用户
package com.lian.logindemo4.Bean;public class UserBean
{
private String userName;
private String userPwd; public void setUserName(String userName) {
this.userName = userName;
} public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
} public String getUserName() {
return userName;
} public String getUserPwd() {
return userPwd;
}
}//servlet(<servlet-name>checkservlet</servlet-name>)
package com.lian.logindemo4.Servlet;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.lian.logindemo4.Bean.DataBean;
import com.lian.logindemo4.Bean.UserBean;public class CheckServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK"; //Initialize global variables
public void init() throws ServletException {
} //Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException
{
if (request.getParameter("userName") != null &&
request.getParameter("userPwd") != null)
{
String userName = request.getParameter("userName");
String userPwd = request.getParameter("userPwd");
DataBean db = new DataBean();
UserBean ub=db.CheckUserLogin(userName,userPwd); request.setAttribute("user",ub);
response.sendRedirect("LogOK.jsp");
}
} //Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
} //Clean up resources
public void destroy() {
}
}//验证
package com.lian.logindemo4.Bean;import java.sql.*;
import com.lian.logindemo4.Bean.UserBean;public class DataBean
{
private Connection conn = null;
private ResultSet rst = null;
private PreparedStatement ps = null; public DataBean()
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = DriverManager.getConnection
("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=JSP","sa", "");
}
catch (SQLException ex)
{
System.out.println(ex.getMessage() + "1路径错误");
}
catch (ClassNotFoundException ex)
{
System.out.println(ex.getMessage() + "驱动错误");
}
} public UserBean CheckUserLogin(String userName,String userPwd)
{
UserBean ub=null;
String sql="select count(*) from UserLon where userName=? and userPwd=?";
try
{
ps=conn.prepareStatement(sql);
ps.setString(1, userName);
ps.setString(2, userPwd);
rst=ps.executeQuery();
if(rst.next())
{
if(rst.getInt(1)>0)
{
ub.setUserName(rst.getString("userName"));
ub.setUserPwd(rst.getString("userPwd"));
}
} }
catch(Exception e)
{
e.printStackTrace();
}
return ub;
}
}//sqlserver2000数据库
表UserLon
字段userName(varchar),userPwd(varchar)
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
Index
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<form name="form1" method="post" action="checkservlet">
<div align="center">
<p>用户名称:
<input type="text" name="userName">
</p>
<p>用户密码:
<input type="password" name="userPwd">
</p>
<p>
<input type="submit" name="Submit" value="提交">
</p>
</div>
</form>
<p> </p>
</body>
</html>
//用户
package com.lian.logindemo4.Bean;public class UserBean
{
private String userName;
private String userPwd; public void setUserName(String userName) {
this.userName = userName;
} public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
} public String getUserName() {
return userName;
} public String getUserPwd() {
return userPwd;
}
}//servlet(<servlet-name>checkservlet</servlet-name>)
package com.lian.logindemo4.Servlet;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.lian.logindemo4.Bean.DataBean;
import com.lian.logindemo4.Bean.UserBean;public class CheckServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK"; //Initialize global variables
public void init() throws ServletException {
} //Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException
{
if (request.getParameter("userName") != null &&
request.getParameter("userPwd") != null)
{
String userName = request.getParameter("userName");
String userPwd = request.getParameter("userPwd");
DataBean db = new DataBean();
UserBean ub=db.CheckUserLogin(userName,userPwd); request.setAttribute("user",ub);
response.sendRedirect("LogOK.jsp");
}
} //Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
} //Clean up resources
public void destroy() {
}
}//验证
package com.lian.logindemo4.Bean;import java.sql.*;
import com.lian.logindemo4.Bean.UserBean;public class DataBean
{
private Connection conn = null;
private ResultSet rst = null;
private PreparedStatement ps = null; public DataBean()
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = DriverManager.getConnection
("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=JSP","sa", "");
}
catch (SQLException ex)
{
System.out.println(ex.getMessage() + "1路径错误");
}
catch (ClassNotFoundException ex)
{
System.out.println(ex.getMessage() + "驱动错误");
}
} public UserBean CheckUserLogin(String userName,String userPwd)
{
UserBean ub=null;
String sql="select count(*) from UserLon where userName=? and userPwd=?";
try
{
ps=conn.prepareStatement(sql);
ps.setString(1, userName);
ps.setString(2, userPwd);
rst=ps.executeQuery();
if(rst.next())
{
if(rst.getInt(1)>0)
{
ub.setUserName(rst.getString("userName"));
ub.setUserPwd(rst.getString("userPwd"));
}
} }
catch(Exception e)
{
e.printStackTrace();
}
return ub;
}
}//sqlserver2000数据库
表UserLon
字段userName(varchar),userPwd(varchar)
解决方案 »
- request.getRemoteAddr()问题
- SSH hibernateTemplate问题
- native2ascii中文默认转换后是什么编码
- 如何统计我的网站的访问量啊?
- JSP include 缓存问题
- 面试题:在jsp中得到form参数和URL参数的方法是什么?Session注销登陆却不关闭窗口的方法是什么?
- wml语言页面之间传递变量乱码,怎么解决?
- 如何通过JSP程序调用WINDOWS低层API?
- 哪位大侠有JBuilder 8不能保持jsp文件的那个补丁包?
- 如何配置Apache的默认目录文件?
- 如何在提交表单后,判断处理结果正确则弹出A对话框,如果错误则弹出B对话框?
- 如何获取用户登陆的信息呢?
{
UserBean ub=null;
String sql="select * from UserLon where userName=? and userPwd=?";
try
{
ps=conn.prepareStatement(sql);
ps.setString(1, userName);
ps.setString(2, userPwd);
rst=ps.executeQuery();
if(rst.next())
{
ub.setUserName(rst.getString("userName"));
ub.setUserPwd(rst.getString("userPwd"));
} }
catch(Exception e)
{
e.printStackTrace();
}
return ub;
}
}
这样试试
1.在方法public UserBean CheckUserLogin(String userName,String userPwd)
里:你先 UserBean ub=null
然后ub.setUserName(rst.getString("userName"));
有空指针异常
但是被扑获,并打印 e.printStackTrace();
所以CheckUserLogin返回的是NULL
个人认为CheckUserLogin返回类型应定义为boolean 型,是注册用户返回true
2.
//UserBean ub=db.CheckUserLogin(userName,userPwd);
在这里应该判断如果是注册用户,返回到登录成功頁面
不是则返回到失败頁面
3.
密码应该加密,否则风险很大
4.登录成功的用户的信息应保存在session中,每一次用户访问只有登录后才能访问的頁面的时候,都要验证是一下是否合法用户
===============
具体的实现可以参考网上一些代码
response.sendRedirect("LogOK.jsp");
很明显都没做什么判断就直接跳转的LogOK.jsp里面了。。
起码得有个if....else语句作为判断吧