学生管理系统-登录功能
- 学生管理系统-登录功能
- Servlet是什么?
- Javabean是什么?
- 一,登录界面(login.jsp)
- 二,我们需要建立与之匹配的数据库,需要用户名和密码和标记是否管理员(0为管理员,1位普通用户)
- 三:接下来我们需要建立一个Bean的包,上面说了这个里面的数据与数据库都是一一对应的,我们给包取名为bean,将类取名为User
- 四:接下来我们需要建立数据库的连接在util包中创建Tool.java
- 五:然后我们就要建立servlet类,在control包中,建立一个checkLogin的servlet类
- 六:配置servlet文件,用来实现从jsp界面跳转到servlet的操作。在WEB-INF下面的web.xml文件
- 七:建立Dao,用来执行sql语句,判断是否登录成功。类名取为UserDao,
- 八:执行login.jsp
学生管理系统-登录功能
最近在学JavaWeb,可以通过这个小案例理解JavaWeb是如何工作的,怎样通过前台页面调取后台数据库里的数据,以及用户登录等等
JavaBean+JSP+Servlet
数据库用的是mysql
编辑器用的是idea
Servlet是什么?
1,客户端发送请求至服务器端;
2,服务器将请求信息发送至 Servlet;
3,Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
4,服务器将响应返回给客户端。
Javabean是什么?
说白了就是类而已,只不过现在改了一个名字而已,之前写的时候都是一堆类混在一起,现在就是把他们拆开,按照不同的功能放在一起,一般我们用四个包来区分。
1, bean包:这个包里面放的都是一些属性类,一般数据库里面有什么表,相应的就要有什么bean,当然表里面的数据在bean里面也要全有,比如有一个user表,表里面有username,password那么在该包下就要建立相应的User(User只是一个名字,你自己可以随便取)类,有私有变量username和password,与之对应的get和set函数
2,control:这个包放置的就是servlet类,用来网页与后台数据的交互
3,dao :这个包就是放一些类,类里面的函数就是用来对数据库进行操作的,例如增删改查。
4,util :这包里面放的就是用来连接数据库的函数,在Dao函数里面直接调用这个就能连接数据库,代码复用。
一,登录界面(login.jsp)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录学生管理系统</title>
<script src="js/jquery-3.3.1.min.js"></script>
<link type="text/css" href="css/login.css" rel="stylesheet">
</head>
<body>
<div >
<div ><img class="bj bj-blur" src="img/login-bj.jpg"></div>
<div class="box">
<h1>学生管理系统登录</h1>
<h2>登录失败,账号或者密码错误</h2>
<form method="post" action="/c">
<ul>
<li>用户名:<input type="text" name="username"></li>
<li> 密 码 :<input type="password" name="password"></li>
<li class="i"><span><input type="radio" name="G" value="0">管理员</span><span><input type="radio" checked name="G" value="1">学生</span></li>
<li><input type="submit" value="登录"></li>
<li><input type="button" value="注册"></li>
<%
if (session.getAttribute("msg")!=null){
session.setAttribute("msg",null);
%>
<script>
$("h2").css("display","block");
$("input").focus(function () {
$("h2").css("display","none");
})
</script>
<%
}
%>
</ul>
</form>
</div>
</div>
<script>
$("input[type=button]").click(function () {
alert("注册功能暂未开放!")
})
$("img").removeClass("bj-blur");
$(".box").mouseover(function () {
$("img").addClass("bj-blur");
$(".box").css("opacity",0.9);
})
$(".box").mouseleave(function () {
$("img").removeClass("bj-blur");
$(".box").css("opacity",0.5);
})
</script>
</body>
</html>
二,我们需要建立与之匹配的数据库,需要用户名和密码和标记是否管理员(0为管理员,1位普通用户)
三:接下来我们需要建立一个Bean的包,上面说了这个里面的数据与数据库都是一一对应的,我们给包取名为bean,将类取名为User
User.java
package com.student.bean;
public class User {
private int ID;
private String username;
private String 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;
}
}
四:接下来我们需要建立数据库的连接在util包中创建Tool.java
Tool.java
package com.student.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
* 数据库操作
*/
public class Tool {
/**
* 获取数据库连接
* @return 数据库对象
*/
public static Connection getConnection(){
Connection conn=null;
try {
//加载MySql数据库驱动
Class.forName("com.mysql.jdbc.Driver");
String url="JDBC:Mysql://localhost:3306/student";
String username="root";
String password="wxy";
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭数据库连接
* @param conn 数据库对象
* @param ps
*/
public static void close(Connection conn, PreparedStatement ps){
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Connection conn = Tool.getConnection();
if (conn!=null){
System.out.println("连接成功");
}else {
System.out.println("连接失败");
}
}
}
五:然后我们就要建立servlet类,在control包中,建立一个checkLogin的servlet类
checkLogin.java
package com.student.control;
import com.student.bean.User;
import com.student.dao.UserDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
/**
* 0管理员
* 1普通用户
*/
public class checkLogin extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session=request.getSession();
String uname=request.getParameter("username");
String pwd=request.getParameter("password");
//标记登录类型
int g = Integer.parseInt(request.getParameter("G"));
//定义全局身份标识
if (g==0){
session.getServletContext().setAttribute("sf","管理员");
}else {
session.getServletContext().setAttribute("sf","学生(普通用户)");
}
//管理员登录0
User u = new UserDao().checkLogin(uname, pwd,g);
//普通用户1
User uStudent=new UserDao().checkLogin(uname,pwd,g);
if (u!=null || uStudent!=null){
//标记用户名
session.setAttribute("u",uname);
response.sendRedirect("main.jsp");
}else {
response.sendRedirect("login.jsp");
session.setAttribute("msg","登录失败,账号或者密码错误!");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
六:配置servlet文件,用来实现从jsp界面跳转到servlet的操作。在WEB-INF下面的web.xml文件
<servlet>
<servlet-name>checkLogin</servlet-name>
<servlet-class>com.student.control.checkLogin</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>checkLogin</servlet-name>
<url-pattern>/c</url-pattern>
</servlet-mapping>
七:建立Dao,用来执行sql语句,判断是否登录成功。类名取为UserDao,
UserDao.java
package com.student.dao;
import com.student.bean.User;
import com.student.util.Tool;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDao {
/**
* 判断用户输入账号密码是否正确
* @param name 用户名
* @param pwd 密码
* @return User对象
*/
public User checkLogin(String name,String pwd,int isRoot){
Connection conn = Tool.getConnection();
PreparedStatement ps =null;
ResultSet rs=null;
User user=null;
try {
ps = conn.prepareStatement("select * from loginuser where username=? and password=? and isRoot=?");
ps.setString(1,name);
ps.setString(2,pwd);
ps.setInt(3,isRoot);
rs= ps.executeQuery();
while (rs.next()){
user = new User();
user.setID(rs.getInt(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(3));
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
Tool.close(conn,ps);
}
return user;
}
}
八:执行login.jsp
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以加QQ(2602138376)
文章标题:学生管理系统-登录功能
文章字数:1.7k
本文作者:Zevs
发布时间:2019-08-16, 06:58:11
最后更新:2019-08-16, 07:01:47
原始链接:http://zhsh666.xyz/2019/08/16/学生管理系统-登录功能/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。
√本站访问人数:人次 | ◎本站总访问量:
次