jsp学生信息管理系统(一)

今天看了java1234网的小锋老师的jsp实战项目视频,做了个简单的登录验证,写的不是很好,有点小问题还没写好(密码或账号错误提示)


数据库连接类


import java.sql.*;

import java.util.List;


public class ConnDB {
private static String URL = "jdbc:mysql://localhost:3306/db_student";//数据库连接        "db_student"是数据库名
private static String USER = "root";//数据库账号
private static String PASSWORD = "root";//数据库密码
private static Connection conn = null;


public ConnDB() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}


}
//获取数据库连接
public Connection getConnction() {
try {
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
//关闭数据库连接
public void closeCon(Connection con) throws Exception{
if(con!=null){
con.close();
}

}

//测试连接是否成功

public static void main(String [] args){
ConnDB c= new ConnDB();
try{
c.getConnction();
System.out.print("数据库连接成功");
}catch(Exception e){
e.printStackTrace();
}

}

}


登录界面

用了jQuery框架来验证是否为空,长度是否足够。

resetValue()用于清空输入框的内容。


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

 
    学生信息管理系统
   
   
 
 
 


 

 

 
   
   
   
   
   
   
   
   
   
账 号
密 码
  

   

   

   

 


写个javaBean类来当数据载体



public class User {
private int id;
private String username;
private String password;

public User(){
super();
}
public User(String username,String password){
super();
this.username=username;
this.password=password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}


数据库操作类(应该是叫dao层?)


import java.sql.*;

import model.User;

import com.mysql.jdbc.PreparedStatement;

import jdbc_conn.ConnDB;



public class UserchkDao {
 
public User login(Connection con,User user) throws Exception {
User resultUser=null;
String sql="select * from user where username=? and password=?";
PreparedStatement pstmt=(PreparedStatement) con.prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
resultUser=new User();
resultUser.setUsername(rs.getString("username"));
resultUser.setPassword(rs.getString("password"));

}
return resultUser;

}
}



写个servlet

一些逻辑操作,用的是post方式提交表单,所以重写doPost()方法。


import java.awt.Window;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import jdbc_conn.ConnDB;
import model.User;


import com.mysql.jdbc.StringUtils;


import dao.UserchkDao;


public class login_check_servlet extends HttpServlet {


ConnDB conndb=new ConnDB();
UserchkDao ucd= new UserchkDao();
/**
* Constructor of the object.
*/
public login_check_servlet() {
super();
}


/**
* Destruction of the servlet.

*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}




public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("  A Servlet");
out.println("  ");
out.print("    This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println("  ");
out.println("");
out.flush();
out.close();
}




public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName=request.getParameter("username");
String passWord=request.getParameter("password");
request.setAttribute("uName", userName);
request.setAttribute("pWd", passWord);
Connection con=null;
User user=new User(userName,passWord);
try {
con=conndb.getConnction();
User currentUser=ucd.login(con, user);
// User currentUser= new User();
// currentUser=ucd.login(con, user);
if(currentUser==null){
//服务器跳转

request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
//客户端跳转
response.sendRedirect("calculator.jsp");
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
conndb.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


/**
* Initialization of the servlet.

*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}


}



你可能感兴趣的:(jsp学生信息管理系统(一))