javaweb+servlet+mysql登录+注册+增删改查源码

一.项目功能简介

                                  功能流程图

源码:

百度网盘链接:https://pan.baidu.com/s/1QpbX1Sz0nZJwlvzEvx7zEw 
提取码:ynzu

数据库:

链接:https://pan.baidu.com/s/1p2LIfcOeQ1EKdCDS4D29PA 
提取码:mbpc

二.项目详解

1.创建javaweb项目

2.创建目录

src/com.neusoft.dao存放实体类和数据库操作的java文件

src/com.neusoft.servlet存放servlet的文件,用来接收前台发来的请求和数据,传到数据库,再返回给前台

webContent文件夹一般存放jsp、html、js等文件

web.xml存放在WEB-INF文件夹下

3.login.jsp(JSP页面用了Bootstrap http://www.bootcss.com/,联网状态加入下边标签,然后标签的class中引入Bootstrap中已有的class即可)

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'login.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  </head>
  
  <body style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;">
  <div style="width:30% ;height:376px;margin:136px 10px 10px 825px;border-radius:25px;box-shadow: 5px 5px 5px 5px #888888;background-color:">
 <div style="height:70px;margin-left: 172px;margin-top:3px;float:left;">
		<h1 style="font: bold em Brush Script MT ; color:#222; text-shadow: 0px 2px 3px #666;float:left;"> Login<h1/>
		</div>
  <form name="myform" method="post" action="LoginServlet" class="form-group"style="position:absolute;left:889px;top:216px;"> 
      
       用户名: <input type="text" name="username" class="form-control" style="width:285px;"/><br/><br/>
      
       密码:<input type="text" name="userpwd" class="form-control" style="width:285px;"/><br/><br/>
      <input type="submit"  class="btn btn-default" value="登录"/>
      <a href="registerStudent.html">注册</a>
  </form>  
  </div>
  </body>
</html>

4.LoginServlet.java,接收login.jsp发来的请求,调用数据库文件StudentDAO.java中的doLogin()方法,查询数据返回回来后,根据查询结果跳转页面。

package com.neusoft.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

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

import com.neusoft.dao.StudentDAO;
import com.neusoft.dao.StudentPO;

public class LoginServlet extends HttpServlet {


    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    	 request.setCharacterEncoding("utf-8");        
	        String username=request.getParameter("username");
	        String userpwd=request.getParameter("userpwd");
        
        StudentDAO sd = new StudentDAO();
        try {
        	StudentPO sp=sd.doLogin(username, userpwd);;
            if(sp==null){
                response.sendRedirect("/login.jsp");
            }else{
                request.setAttribute("student", sp);
                if(sp.getUserPower()==1)
                    request.getRequestDispatcher("/main.jsp").forward(request, response);//request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。
                else if(sp.getUserPower()==0)
                    request.getRequestDispatcher("/user.jsp").forward(request, response);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }

}

5.StudentDAO.java 存放数据库操作的java文件,由servlet调用

package com.neusoft.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;



public class StudentDAO {
    //链接数据库
    public Connection getConnection(){
    	    // 数据库连接对象
            Connection conn = null;
            //JDBC驱动
            String driverName="com.mysql.jdbc.Driver";
            // 数据库连接地址
            String connectionString="jdbc:mysql://localhost:3306/test?"+"user=root&password=123456&useUnicode=true&characterEncoding=utf-8";
            try{
            	//加载驱动
                Class.forName(driverName);
              //通过DriverManager类的getConenction方法指定三个参数,连接数据库
                conn=DriverManager.getConnection(connectionString);
                //conn.close();
            }catch(ClassNotFoundException e){
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return conn;
    }
    //用户登录
    public StudentPO doLogin(String username,String userpwd) throws SQLException{
       //定义SQL语句
    	String sql="select * from test where loginname=? and loginpwd=?";
        //获取连接
        Connection conn = getConnection();
        
        PreparedStatement ps = null;  //向数据库中发送数据集
        ResultSet rs = null;          //接受返回的数据集对象-结果集
        StudentPO sp = null;          //将传回的行封装为列对象
        try {
            ps=conn.prepareStatement(sql);//  创建一个Statement对象
            ps.setString(1, username); //向sql语句的问号添加数据
            ps.setString(2, userpwd);
            //返回结果集
            rs = ps.executeQuery();
            /*用Connection接口的createStatement()方法获得Statement对象传递Sql语句
             * 用它的ExecuteQuery()方法获取单个ResultSet对象.
             * String Sql = "select * from login";
             *stt = conn.createStatement();
             *set = stt.executeQuery(Sql);
            */
            
            //获取数据,遍历结果集,将数据封装到集合中
            while(rs.next()){
                sp = new StudentPO();
                sp.setUserName(rs.getString("loginname"));/*********/
                sp.setUserPwd(rs.getString("loginpwd"));    
                sp.setuserPower(rs.getInt("power"));
                sp.setUserId(rs.getInt("id"));
                sp.setRealName(rs.getString("name"));
            }
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            rs.close();
            ps.close();
            conn.close();
        }
        
        return sp;
    }
    //按id查找
    public StudentPO selectbyid(int id) throws SQLException{
        //定义SQL语句
     	String sql="select * from test where id=?";
         //获取连接
         Connection conn = getConnection();
         
         PreparedStatement ps = null;  //向数据库中发送数据集
         ResultSet rs = null;          //接受返回的数据集对象-结果集
         StudentPO sp = null;          //将传回的行封装为列对象
         try {
             ps=conn.prepareStatement(sql);//  创建一个Statement对象
             ps.setInt(1, id); //向sql语句的问号添加数据
             //返回结果集
             rs = ps.executeQuery();
             /*用Connection接口的createStatement()方法获得Statement对象传递Sql语句
              * 用它的ExecuteQuery()方法获取单个ResultSet对象.
              * String Sql = "select * from login";
              *stt = conn.createStatement();
              *set = stt.executeQuery(Sql);
        
  • 40
    点赞
  • 431
    收藏
    觉得还不错? 一键收藏
  • 32
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值