资讯专栏INFORMATION COLUMN

Servlet编写注册登录页面

hellowoody / 3043人阅读

摘要:新建一个项目选择自己的文件勾选项目构造如下设置项目配置快捷键选择配置红色框选择时,运行成功会会自动运行下方的链接测试运行出现如下便创建成功编写第一个代码,测试环境是否设置成功第一个设置响应内容类型实际的逻辑是

新建一个servlet项目

Flies --> new --> project-->ProjectSDK选择自己的JDK文件-->勾选Web Appliction -->Next

项目构造如下:

设置项目配置

File --> Project Structure (快捷键:Ctrl + Shift + Alt + S) --> 选择Module :

配置Tomcat


红色框选择时,运行成功会会自动运行下方的URL链接

测试运行


出现如下便创建成功

编写第一个Servlet代码,测试环境是否设置成功
@WebServlet("/firstServlet")
public class test extends HttpServlet {

    private String message;

    @Override
    public void init() throws ServletException {
        message = "第一个servlet";
    }

    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
            throws ServletException, IOException
    {
        // 设置响应内容类型
//        response.setContentType("text/html");
        response.setHeader("Content-type","text/html;charset=UTF-8");

        // 实际的逻辑是在这里
        PrintWriter out = response.getWriter();
        out.println("

" + message + "

"); } public void destroy() { // 什么也不做 } }

注解@WebServlet是设置该类的URL,也可以在web.xml里设置,如下:


    test//设置该servlet的名字,可以随便定义
    test.test//对应的java的文件(包名.类名)



    test//上面定义的名字
    /HelloWorld//自己定义URL

运行Tomcat,打开浏览器输入http://localhost:8080/firstServlet或者http://localhost:8080/HelloWorld结果:

开始编写登陆注册模板 首先要先配置JDBC,编写连接数据库工具类

资源:mysql-connector-java-5.1.39-bin.jar
链接:http://note.youdao.com/notesh...

public class connectionUtil {
    private static String  driver;
    private static String  url;
    private static String  username;
    private static String password;

    static {
        try {

            //获取配置文件的信息
            driver = "com.mysql.jdbc.Driver";
            url = "jdbc:mysql://localhost:3306/test";
            username = "root";
//            password = "admin";
            password = "touwen";

            //加载驱动类
            Class.forName(driver);

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url,username,password);
    }

    public static void release(Connection connection, Statement statement, ResultSet resultSet) {

        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
编写注册登录逻辑

注册逻辑

@WebServlet("/registered")
public class registered extends HttpServlet {


    public registered(){
        super();
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String username = new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8");
        String password1 = request.getParameter("password1");
        String password2 = request.getParameter("password2");
        if(password1 == null || password2 == null){
            System.out.println("请输入密码");
        }
        if(password1.equals(password2)){
            Connection conn = null;
            ResultSet rs = null;
            PreparedStatement ptst = null;
            try{
                conn = connectionUtil.getConnection();
                String sql = "SELECT username FROM user";
                ptst = conn.prepareStatement(sql);
                rs = ptst.executeQuery();
                while (rs.next()) {
                    if(username.equals(rs.getString("username"))){
                        System.out.println("用户名已存在");
                        return;
                    }
                }
                String ins = "insert into user(username,password) values (?,?)";
                ptst = conn.prepareStatement(ins);
                ptst.setString(1,username);
                ptst.setString(2,password1);
                int i = ptst.executeUpdate();
                if(i==1) {
                    System.out.println("注册成功");
                }else {
                    System.out.println("注册失败");
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
                connectionUtil.release(conn,ptst,rs);
            }
        }else {
            System.out.println("两次密码不一致");
        }

    }

    // 处理 POST 方法请求的方法
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

登录逻辑

@WebServlet("/login")
public class login extends HttpServlet {

    public login(){
        super();
    }

    @Override
    // 处理 POST 方法请求的方法
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        Connection conn = null;
        PreparedStatement ptst = null;
        ResultSet rs = null;

        String username = new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8");
        String password = request.getParameter("password");
        if(username == null || password == null){
            System.out.println("请输入账号或者密码");
        }
        try {
            conn = connectionUtil.getConnection();
            String sql = "SELECT * FROM user where username = ?";
            ptst = conn.prepareStatement(sql);
            ptst.setString(1,username);
            rs = ptst.executeQuery();
            while (rs.next()){
                if(password.equals(rs.getString("password"))){
                    System.out.println("登陆成功");
                }else {
                    System.out.println("账号密码不正确");
                }
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            connectionUtil.release(conn,ptst,rs);
        }
    }
}

如果一直连接不上数据库时,需要在java的运行环境外部也需要导入JDBC的包,路径是安装的java文件夹下的jrelibext

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75222.html

相关文章

  • 详谈 Filter 过滤器

    摘要:元素用于指定过滤器的完整的限定类名。除此之外,过滤器不会被调用。参数用于访问后续过滤器。还可以为指定目标资源为某个,例如当用户访问时,会执行名字为的,这时会执行过滤器。防止中文乱码过滤器项目使用框架时。 文章首发在CSDN博客,转载请务必注明以下所有链接,否则考虑法律追究责任。 CSDN地址:http://blog.csdn.net/tzs_1041218129/article/det...

    wind5o 评论0 收藏0
  • 慕课网_《Java实现SSO单点登录》学习总结

    摘要:时间年月日星期三说明本文部分内容均来自慕课网。慕课网教学示例源码无个人学习源码第一章概述课程介绍及介绍课程目标认识并理解及其应用,并能根据其实现原理自行实现。 时间:2017年3月22日星期三说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:无个人学习源码:https://github.com/zccodere/s... 第一章:概述 1-...

    flyer_dev 评论0 收藏0
  • Spring Boot Admin排坑指南

    摘要:其简陋的页面让人不忍直视,但更新到系列后,像脱胎换骨一般好用这篇博客记录我个人在使用过程中遇到过的坑,每个坑位都会附上详细的填坑办法环境参数服务直接注册失败常见的注册失败问题可以分为以下两种服务端与客户端不在同一台服务器上提示安全校验不通过 Spring Boot Admin 1.x其简陋的页面让人不忍直视,但更新到2.x系列后,像脱胎换骨一般好用 这篇博客记录我个人在使用Spring...

    CocoaChina 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<