登录注册 (java jdbc servlet jsp)

这是最基础的java jsp servlet jdbc内容的混合使用,主要实现了jsp页面的登录注册功能,同时连接数据库。
这里写图片描述
1、创建实体化对象:


package com.cn.info;

public class Info {
    private String id;
    private String name;
    private String password;
//  private String password1;
    private String sex;
    private int age;
    private String tel;
    private String adress;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }
    public String getAdress() {
        return adress;
    }
    public void setAdress(String adress) {
        this.adress = adress;
    }


}

2、编写相关的jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>


    <title>登录</title>


  <body bgcolor = "blue">
  <h1 align = center >欢迎您的到来</h1>
  <form action = "LoginServlet" method = "post">
  <table border = "1" align = center>
  <tr>
  <td>i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d:</td>
  <td><input type = "text" name = "id" ></td>
  </tr>
  <tr>
  <td>密 &nbsp;    码:</td> 
  <td><input type = "password" name = "password" ></td>
  </tr>
  <tr>
  <td>
  <th>
  <input type = "submit" value = "登录">
  <input type = "reset" value = "重置">
  <input type = "button" value = "注册" onClick="window.location.href='register.jsp'">
</th>
    </td>
  </tr>
  </table>
</form>

  </body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>


    <title>注册成功</title>



  </head>

  <body>
    <h1 align = "center">注册成功!</h1>
 <h1 align = "center">请返回登录页面----------</h1>

  </body>
</html>
2、创建登录注册的servlet




package com.cn.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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

import com.cn.add.AddUser;
import com.cn.info.Info;

@SuppressWarnings("serial")
public class AddUserServlet extends HttpServlet {

    /**

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

    /**

     *
     * This method is called when a form has its tag value method equals to post.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        request.setCharacterEncoding("gb2312");
        response.setCharacterEncoding("gb2312");
        PrintWriter out = response.getWriter();
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        String sex = request.getParameter("sex");
        int age = Integer.parseInt(request.getParameter("age"));
        String tel = request.getParameter("tel");
        String adress = request.getParameter("adress");
        Info info = new Info();
        info.setId(id);
        info.setName(name);
        info.setPassword(password);
        info.setSex(sex);
        info.setAge(age);
        info.setAdress(adress);
        info.setTel(tel);
        AddUser adduser = new AddUser();
        adduser.add(info);
        request.getRequestDispatcher("registersuccess.jsp").forward(request, response);
        out.flush();
        out.close();

    }

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

}

package com.cn.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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

import com.cn.databases.Select;
import com.cn.info.Info;

public class LoginServlet extends HttpServlet {

/**
 * Destruction of the servlet. <br>
 */
public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
}

/**
 * The doPost method of the servlet. <br>
 *
 * This method is called when a form has its tag value method equals to post.
 * 
 * @param request the request send by the client to the server
 * @param response the response send by the server to the client
 * @throws ServletException if an error occurred
 * @throws IOException if an error occurred
 */
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    response.setContentType("text/html");
    request.setCharacterEncoding("gb2312");
    response.setCharacterEncoding("gb2312");
    PrintWriter out = response.getWriter();
    String id = request.getParameter("id");
    String password= request.getParameter("password");
    Info info = new Info();
    info.setId(id);
    info.setPassword(password);
    Select s = new Select();
    s.login(info);

    request.getRequestDispatcher("successful.jsp").forward(request,response);
    out.flush();
    out.close();
}

/**
 * Initialization of the servlet. <br>
 *
 * @throws ServletException if an error occurs
 */
public void init() throws ServletException {
    // Put your code here
}

}

3、创建数据库连接

package com.cn.databases;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mysql.jdbc.Connection;

public class Jdbc_Connection {
    static String DriverName = "com.mysql.jdbc.Driver";
    static String url = "jdbc:mysql://localhost:3306/homework?useUnicode=true&characterEncoding=utf8";
    static String username = "root";
    static String pswd = "123456";
    static {
        try{
            Class.forName(DriverName);
            System.out.println("创建连接成功!");
        }catch(ClassNotFoundException e){
            System.out.println("创建驱动失败!");
            e.printStackTrace();
        }
    }
    public static Connection getConnection(){
        Connection con = null;
        try{
            con = (Connection) DriverManager.getConnection(url, username, pswd);
                    System.out.println("数据库连接成功!");
        }catch(SQLException e){
            System.out.println("数据库连接失败!");
            e.printStackTrace();
        }
    return con;
    }
    public static void free(ResultSet rs, Connection con,Statement stmt){
        try{
            if(rs != null)
                rs.close();
        }catch(SQLException e){
            System.out.println("关闭ResultSet失败!");
            e.printStackTrace();
        }finally{
            try{
                if(con != null)

                con.close();
        }catch(SQLException e){
            System.out.println("关闭Connection失败");
            e.printStackTrace();
        }finally{
            try{
                if(stmt != null)
                    stmt.close();
            }catch(SQLException e){
                System.out.println("关闭Statement失败");
                e.printStackTrace();
            }
        }

        }
    }
    //public static void main(String[] agrs){
//      Jdbc_Connection j = new Jdbc_Connection();
    //  Jdbc_Connection.getConnection();
    }
}

4、登录相当于在数据库中查找并且匹配判断,注册相当于添加数据到数据库这里写代码片
package com.cn.databases;

import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.cn.info.Info;
import com.mysql.jdbc.Connection;

public class Select {
public void login(Info info){
Connection con = null;
PreparedStatement psmt = null;
ResultSet rst = null;
try{
con = Jdbc_Connection.getConnection();
String sql = “Select * from login where id= ?”;
psmt = con.prepareStatement(sql);
psmt.setString(1,info.getId());
rst = psmt.executeQuery();
if(rst.next()){
// String password = rst.getString(“password”);
// System.out.println(password);
if(rst.getString(“password”).equals(info.getPassword())){
System.out.println(“登陆成功!”);
}else{
System.out.println(“登录失败!”);
}
}else{
System.out.println(“没有该用户请返回注册!”);
}
}catch(Exception e){
e.printStackTrace();
}finally{
Jdbc_Connection.free(rst, con,psmt);
}

}

}

“`
package com.cn.add;

import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.cn.databases.Jdbc_Connection;
import com.cn.info.Info;
import com.mysql.jdbc.Connection;

public class AddUser {
public void add(Info info ){
Connection con = null;
PreparedStatement psmt = null;
ResultSet rst = null;
try{
con=Jdbc_Connection.getConnection();

        String sql = "insert into login values(?,?,?,?,?,?,?)";

        psmt = con.prepareStatement(sql);
        psmt.setString(1,info.getId() );
        psmt.setString(2, info.getPassword());
        psmt.setString(3, info.getName());
        psmt.setString(4,info.getSex());
        psmt.setInt(5, info.getAge());
        psmt.setString(6, info.getTel());
        psmt.setString(7, info.getAdress());
        psmt.executeUpdate();
        System.out.println("注册成功!");
    }catch(Exception e){
        e.printStackTrace();
    }finally{
        Jdbc_Connection.free(rst, con, psmt);

    }
}

}

5、创建处理编码异常的过滤器
package com.cn.filter;

import java.io.IOException;
import java.nio.file.DirectoryStream.Filter;

import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

@SuppressWarnings(“rawtypes”)
public abstract class ChineseFilter implements Filter{
public void destroy(){

}
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException,ServletException{
request.setCharacterEncoding("utf-8");//将所有request内的对象设置字符集为utf-8
response.setCharacterEncoding("utf-8");//将所有response内的对象设置字符集为utf-8
chain.doFilter(request,response);//用chain 的doFilter处理过滤
}
public void init(FilterConfig arg0) throws ServletException{

}

}
无法实现登录注册失败的跳转页面,想不出怎么实现,求支招

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值