使用servlet实现登录

简单的登录页面:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
    <!-- web3:项目名,在LoginServlet前必须加项目名,如果不加则默认视为工作空间地址 -->
    <form action="/web3/LoginServlet" method="post">
        username:<input type="text" name="username" />
        password:<input type="password" name="password" />
        <input type="submit" value="login">
    </form>
</body>
</html>

登录成功页面:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
    登录成功!!
</body>
</html>

登录失败页面:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
    登录成功!!
</body>
</html>

Servlet处理代码:

public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    // 使用doPost()可以隐藏向服务器发送请求的内容
    @Override
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        ServletContext application = getServletContext();
        // 设置服务器返回页面的编码,如果不设置默认会使中文乱码
        response.setContentType("text/html;Charset=utf-8");
        // 获取<input type="?" name="username">中的username的值
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        // 如果请求中username为空,把username改为空字符串,避免指针为空的异常
        if (username == null) {
            username = "";
        }
        if (password == null) {
            password = "";
        }
        PrintWriter out = response.getWriter();
        out.println(username + ":" + password);
        User user = new User(username, password);
        // mvc结构
        UserDao userDao = new UserDao();
        // 判断是否有值返回
        boolean b = userDao.getUserByNameAndPassword(user);
        if (b) {
            // 跳转到success.html页面
            RequestDispatcher requestDispatcher = application
                    .getRequestDispatcher("/success.html");
            requestDispatcher.forward(request, response);
        } else {
            RequestDispatcher requestDispatcher = application
                    .getRequestDispatcher("/fail.html");
            //将fail.html包含在当前页面内部
            requestDispatcher.include(request, response);
        }
    }
}

Servlet配置:

    <!-- login -->
    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>com.gem.servlet.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/LoginServlet</url-pattern>
    </servlet-mapping>

连接数据库:

public class DBUtils {
    public static Connection getConnection() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/school";
            String user = "root";
            String password = "rootpassword";
            return DriverManager.getConnection(url, user, password);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
}

建表语句:

CREATE TABLE user_test(
id int PRIMARY KEY auto_increment,
username VARCHAR(12) not null,
userpassword VARCHAR(12) not null
)

INSERT INTO user_test(username,userpassword) VALUES(‘tom‘,‘123456‘);

SELECT username,userpassword from user_test WHERE username=‘tom‘ and userpassword=‘123456‘

UserDao与数据库交互:

public class UserDao {
    public boolean getUserByNameAndPassword(User user) {
        Connection connection = DBUtils.getConnection();
        PreparedStatement preparedStatement=null;
        ResultSet resultSet=null;
        String sql = "SELECT * from user_test WHERE username=? and userpassword=?";
        try {
         preparedStatement = connection.prepareStatement(sql);
         preparedStatement.setString(1, user.getName());
         preparedStatement.setString(2, user.getPassword());
         resultSet=preparedStatement.executeQuery();
         if (resultSet.next()) {
            return true;
        }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            if (resultSet!=null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if (preparedStatement!=null) {
                try {
                    preparedStatement.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if (connection!=null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        return false;
    }
}

User实体类:

package com.gem.pojo;

public class User {
    private String name;
    private String password;

    public User() {
    }

    public User(String name, String password) {
        super();
        this.name = name;
        this.password = password;
    }

    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;
    }

}

时间: 2024-08-08 22:10:13

使用servlet实现登录的相关文章

JSP+servlet简单登录实例

一个简单的jsp+servlet实例,实现简单的登录 转载▼ http://blog.sina.com.cn/s/blog_5c5bc9070100z7wb.html     开发环境myeclipse+tomcat6 1.先创建web project,项目名为RegisterSystem, 2.在WebRoot 目录下创建login.jsp文件,只需修改body中的内容,如下所示: <body>     <form action="login">     us

jsp+mysql+servlet的登录

登录代码 entity类 package com.wy.entity; public class User { private int id; private String username; private String password; private String email; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername()

java -------简单的基于jsp+servlet+jdbc登录

1 2 项目结构以及数据库表图片 3 4 5 package com.jmi.booklibmanage.service; 6 7 import java.sql.Connection; 8 import java.sql.DriverManager; 9 import java.sql.ResultSet; 10 import java.sql.SQLException; 11 import java.sql.Statement; 12 13 14 15 public class Studen

Servlet页面登录的数据库验证程序(一)

一.基本思想是MVC模式,一个登录页面login.jsp,一个服务器处理程序Servlet.java,一个MySql数据库userinfo. 另外还有相关的数据封装类User和数据库连接类GetData,如果要加入密码验证,可能还要一个错误处理页面error.jsp.在这个小实例中,为了思路简单一点,暂时没有密码验证. 使用的工具是MyEclipse2015. 由于设计jdbc数据库的应用,需要准备mysql-connector-java-5.1.26-bin.jar开发包,拷贝到 WEB_IN

jsp和servlet 简单登录界面(不连接数据库)

1.首先说明一点,虽然很简单但是对于初学者 这个jsp和servlet的链接 我捣鼓了半天才算弄明白 jsp将请求提交到一个url,然后servlet获取也从这个url中获取请求的数据,两者的链接就在那个url jsp中的代码 文件名:login.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <

使用Servlet技术~登录-02

为了更简洁的讲解,我只书写关键代码,只写思路. 场景:对一个人的信息进行录入,然后展示出来. 思路: 1.登录信息录入<录入页面>   username,      [text] gender,          [radio]    (female/male男女,必须保证name一致,默认选中请设置:checked="checked") isAccept,        [checkbox] (保证name属性值一致) date birthday; [text]    

Servlet过滤器---登录权限控制

实现了登录时权限控制:进入首页.登录页以及登录servlet时,不用验证权限:进入其它页面时,须验证是否登录,未登录则跳转到登录页. 一个简单的首页:index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML

servlet实现登录过滤

控制层: package com.product.dbutil.login.action; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servle

基于jsp+servlet的登录用户界面验证

1 login.jsp 2 3 <%@page contentType="text/html" pageEncoding="UTF-8"%> 4 <% 5 String path = request.getContextPath(); 6 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getSer