从0到1使用汤姆猫(tomcat)和servlet实现登录和注册

从0到1使用汤姆猫(tomcat)和servlet实现登录和注册

                                        ——Javee

注:这里使用的编辑器是idea

这里我之前创建了一个空的项目,所以直接点解添加模块即可:

这里选择Java EE的web应用,点击下一步

这里名字自己取,然后下一步

这里选择依赖,再点右边的+,再选择第一个Jars或目录

这里选择自己汤姆猫(tomcat)和ojdbc即可,最后点击确定即可

我们先在web目录下新建两个文件reg.html(注册)和login.html(登录)

代码如下:

<!--login.html-->
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <title>登录</title>
   </head>
   <body>
      <div id="background" style="width: 400px; height: 700px; margin: auto; padding-top: 100px;">
         <form action="login.do" method="post">
            <input type="text" name="name" placeholder="用户名"
               style="width: 300px; height:40px; border-radius: 5px; margin:auto; font-size: 20px;" />

            <input type="text" name="pass" placeholder="密码"
               style="width: 300px; height:40px; border-radius: 5px; margin:auto; font-size: 20px;" />

            <input type="submit" value="登录"
               style="padding: 10px 20px; color:white; background-color: #0084FF; border-radius: 5px; border:none; margin:0 110px; font-size: 20px;" />
         </form>
      </div>
   </body>
</html>
<!--reg.html-->
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <title>注册</title>
   </head>
   <body>
      <div id="background" style="width: 400px; height: 700px; margin: auto; padding-top: 100px;">
         <form action="reg.do" method="post">
            <input type="text" name="name" placeholder="用户名"
               style="width: 300px; height:40px; border-radius: 5px; margin:auto; font-size: 20px;" />

            <input type="text" name="pass" placeholder="密码"
               style="width: 300px; height:40px; border-radius: 5px; margin:auto; font-size: 20px;" />

            <input type="submit" value="注册"
               style="padding: 10px 20px; color:white; background-color: #0084FF; border-radius: 5px; border:none; margin:0 110px; font-size: 20px;" />
         </form>
      </div>
   </body>
</html>

接着在src目录创建三个包dao、model、util

编写文件dao->Operate.java

//Operate.java
package dao;

import model.User;
import util.DBLink;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
* @Author Javee
* @Date 2019/9/3 19:27
* @Description 对用户提交的数据进行响应
*/
public class Operate extends HttpServlet {
    public void service(HttpServletRequest req, HttpServletResponse res)
            throws UnsupportedEncodingException {
        //System.out.println("service ok...");
        req.setCharacterEncoding("utf-8");
        res.setContentType("text/html;charset=utf-8");

        String uri = req.getRequestURI();
        uri = uri.substring(uri.lastIndexOf("/"), uri.lastIndexOf("."));

        if(uri.equals("/reg")){
            String name = req.getParameter("name");
            String pass = req.getParameter("pass");

            User user = new User();
            user.setName(name);
            user.setPass(pass);

            Connection con = null;
            try {
                con = DBLink.getCon();
                String sql = "insert into t_user values (seq_t_user.nextval, ?, ?, to_date(sysdate))";
                PreparedStatement ps = con.prepareStatement(sql);
                ps.setObject(1, user.getName());
                ps.setObject(2, user.getPass());

                ps.executeUpdate();
                ps.close();
                DBLink.close(con);

                PrintWriter o = res.getWriter();
                o.println("注册成功!");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    DBLink.close(con);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }else if(uri.equals("/login")){
            Connection con = null;

            String name = req.getParameter("name");
            String pass = req.getParameter("pass");

            User user = new User();
            user.setName(name);
            user.setPass(pass);

            try {
                con = DBLink.getCon();

                String sql = "select count(1) num from t_user where name = ? and pass = ?";
                PreparedStatement ps = con.prepareStatement(sql);

                ps.setObject(1, user.getName());
                ps.setObject(2, user.getPass());

                ResultSet rs = ps.executeQuery();
                PrintWriter o = res.getWriter();
                while(rs.next()){
                    if(rs.getInt("num") == 1){
                        o.println("登录成功!");
                    }else{
                        o.println("用户名或密码错误!");
                    }
                }

            } catch (SQLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

编写model->User.java

//User.java
package model;

/**
* @Author Javee
* @Date 2019/9/3 19:29
* @Description
*/
public class User {
    int id;
    String name;
    String pass;
    String Date;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    public String getDate() {
        return Date;
    }

    public void setDate(String date) {
        Date = date;
    }
}

编写util->DBLink.java

//DBLink.java
package util;

import java.sql.Connection;
import java.sql.DriverManager;

/**
* @Author Javee
* @Date 2019/9/3 19:29
* @Description
*/
public class DBLink {
    public static Connection getCon() throws Exception {
        Connection con = null;
        Class.forName("oracle.jdbc.driver.OracleDriver");
        con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "Javee", "123456");
        return con;
    }

    public static void close(Connection con) throws Exception {
        if(con != null){
            con.close();
        }
    }
}

修改web->WEB-INF->web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>user</servlet-name>
        <servlet-class>dao.Operate</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>user</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>

在Oracle创建表

CREATE TABLE t_user
(
  ID NUMBER(4),
  NAME VARCHAR2(20),
  pass VARCHAR2(20),
  regdate DATE
);
CREATE SEQUENCE seq_t_user;

编辑配置

 

名称自己取或者默认就可以,点击修复,在点击确定,然后点击云心给,就可以啦~

在浏览器操作就可以啦~

点击提交就可以注册或者登录了~

到这里我们今天的项目就完成啦~

具体代码见顶部下载链接~~~~~~~~~~~~~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值