jsp+servlet+oracle 实现用户登陆功能
求教:、 目前我做了一个登陆界面,现在的问题是如何连接数据库,并判断输入的用户名密码是否跟数据库的用户名密码符合。servlet里该怎么写呢,
求教:、 目前我做了一个登陆界面,现在的问题是如何连接数据库,并判断输入的用户名密码是否跟数据库的用户名密码符合。servlet里该怎么写呢,
答案:servlet里面 String username=request.getParameter("username");
String password=request.getParameter("password");
//参数名根据实际jsp页面的输入框名称对应
boolean right=new DBOperator().MyQuery(username,password);
DBOperator为自定义类名MyQuery()为这个类里面的用来连接数据库和校验用户名和密码的方法
在DBOperator里面定义MyQuery()方法如下
public boolean MyQuery(String username,String password){
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connection con = DriverManager.getConnection(url, username, password);
PreparedStatement ps;
ResultSet rs;
String sql="select count(*) from tablename where username='"+username+"' and password='"+password+"'";
rs = ps.executeQuery(sql);
if(rs.getInt(0)<=0){
return false
}
return true;
}
其他:输入的用户名用request.getParameter()获取
用JDBC连ORACLE就可以了
条件查询得到比较结果。 - -。 你是初学java把? 连接数据库是最基础的。。
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
//orcl是我的oracle数据库sid
String conn_url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String conn_uid = "scott";//用户名
String conn_pwd = "tiger";//密码
Connection con = DriverManager.getConnection(conn_url, conn_uid, conn_pwd);
Statement stmt;
ResultSet rst;
//userid传过来的用户名,password 密码
String sql="select count(*) from xxxtable where userid="+userid+" and password="+password;
stmt = con.createStatement();
rst = stmt.executeQuery(sql);
先写到这吧。有事 先忙了
如果需要,可以提供更详细的 首先 你得写一个DB类 就是一个JDBC驱动 (当然你也可以用Oracle)
我给你一个DB类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBBase {
private static final String DRIVER = "";
private static final String UID = "";
private static final String PWD = "";
private static final String URL = "";
private Connection conn = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
private void setConnection() {
try {
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL,UID,PWD);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public ResultSet executeQuery(String sql, String[] param) {
this.setConnection();
try {
ps = conn.prepareStatement(sql);
if (ps != null) {
for (int i = 0; i < param.length && param != null; i++) {
ps.setString(i + 1, param[i]);
}
}
rs = ps.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
public ResultSet executeQuery(String sql) {
this.setConnection();
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
public int executeUpdate(String sql, String[] param) {
int a = -1;
this.setConnection();
try {
ps = conn.prepareStatement(sql);
if (ps != null) {
for (int i = 0; i < param.length && param != null; i++) {
ps.setString(i + 1, param[i]);
}
a = ps.executeUpdate();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
public int executeUpdate(String sql) {
int a = -1;
this.setConnection();
try {
ps = conn.prepareStatement(sql);
a = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
public void close(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
驱动和用户密码这些你自己填
然后创建一个Servlet在post或是get方法里面写业务逻辑 调用我给你的DB类 网上这类的东西很多,
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form name="loginForm" method="post" action="judgeUser.jsp">
<table>
<tr>
<td>用户名:<input type="text" name="userName" id="userName"></td>
</tr>
<tr>
<td>密码:<input type="password" name="password" id="password"></td>
</tr>
<tr>
<td><input type="submit" value="登录" style="background-color:pink"> <input type="reset" value="重置" style="background-color:red"></td>
</tr>
</table>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>身份验证</title>
</head>
<body>
<%
request.setCharacterEncoding("GB18030");
String name = request.getParameter("userName");
String password = request.getParameter("password");
if(name.equals("abc")&& password.equals("123")) {
%>
<jsp:forward page="afterLogin.jsp">
<jsp:param name="userName" value="<%=name%>"/>
</jsp:forward>
<%
}
else {
%>
<jsp:forward page="login.jsp"/>
<%
}
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录成功</title>
</head>
<body>
<%
request.setCharacterEncoding("GB18030");
String name = request.getParameter("userName");
out.println("欢迎你:" + name);
%>
</body>
</html>
总共3个jsp文件,第一个是login.jsp,第2个是judge.jsp,第3个是afterLogin.jsp
上一个:JSP中如何在ifame点击button后提交的action出现在新的窗口中
下一个:谁有jsp做的图书馆管理系统数据库表啊