zoukankan      html  css  js  c++  java
  • 登录界面

    在浏览器中访问Internet上的一些网站时,我们时常遇到某些网页的某些功能需要用户登录才能实现,作为初学Java Web设计的学员,可以试着编写一个简单的登录界面。其中用JSP页面设计网页显示的内容,用JavaScript控制网页提交的信息,用Servlet控制数据库的访问。

    1.JSP页面应该包括登录页面和登录成功后显示的页面,其中登录页面的代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://

    www.w3.org/TR/html4/loose.dtd">

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>欢迎登录</title>

    </head>

    <body>

    <form name="form1" action="loginServlet" method="post" onsubmit="return on_submit(form1)">

             <table align="center">

                       <tr>

                                <td colspan="2" align="center"><font  color="green">欢迎登录</font></td>

                       </tr>

                       <tr>

                                <td>用户名:</td>

                                <td><input name="username" type="text" size="20"></td>

                       </tr>

                       <tr>

                                <td>密&nbsp;&nbsp;码:</td>

                                <td><input type="password" name="userpass" size="20"></td>

                       </tr>

                       <tr>

                                <td align="right"><input type="reset" value="重置"></td>

                                <td align="left"><input type="submit" value="登录"></td>

                       </tr>

                       <%String checkInfo = (String)request.getAttribute("checkInfo");

                                if(checkInfo != null){

                                         out.print("<tr><td colspan='2' align='right'>"+checkInfo+"</td></tr>");

                                }

                       %>

             </table>

    </form>

    <script type="text/javascript">

             function on_submit(form){

                       if(form.username.value.length == 0){

                                alert("用户名不能为空!");

                                form.username.focus();

                                return false;

                       }

                       if(form.userpass.value.length == 0){

                                alert("密码不能为空!");

                                form.userpass.focus();

                                return false;

                       }

                       if(form.username.value.length < 8){

                                alert("用户名不能小于8位!");

                                form.username.focus();

                                return false;

                       }

                       if(form.username.value.length > 16){

                                alert("用户名不能大于16位!");

                                form.username.focus();

                                return false;

                       }

                       if(form.userpass.value.length < 8){

                                alert("密码不能小于8位!");

                                form.userpass.focus();

                                return false;

                       }

                       if(form.userpass.value.length >16){

                                alert("密码不能大于16位!");

                                form.userpass.focus();

                                return false;

                       }

                       return true;

             }

    </script>

    </body>

    </html>

    登录成功后的页面代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/

    TR/html4/loose.dtd">

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>用户首页</title>

    </head>

    <body>

    <p>${current_user.usertype }用户${current_user.username }您好!</p><br>

    </body>

    </html>

    2.在编写连接数据库的Servlet之前,应该设计一个存放用户数据的JavaBeans,代码如下:

    public class User {

             private String username;//用户名

             private String usertype;//用户类型

            

             public User(){}

             public User(String user){username = user;}

            

             public void setUsername(String data){username = data;}

             public void setUsertype(String data){usertype = data;}

            

             public String getUsername(){return username;}

             public String getUsertype(){return usertype;}

    }

    3.然后编写控制连接数据库并且验证登录信息的Servlet:

    import java.io.IOException;

    import javax.servlet.RequestDispatcher;

    import javax.servlet.ServletException;

    import javax.servlet.annotation.WebServlet;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import java.sql.*;

    /**

     * Servlet implementation class LoginServlet

     */

    @WebServlet(urlPatterns={"/loginServlet"}, name="login_servlet")

    public class LoginServlet extends HttpServlet {

             private static final long serialVersionUID = 1L;

          

        /**

         * @see HttpServlet#HttpServlet()

         */

        public LoginServlet() {

            super();

            // TODO Auto-generated constructor stub

        }

             /**

              * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

              */

             protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    //               // TODO Auto-generated method stub

    //               response.getWriter().append("Served at: ").append(request.getContextPath());

                       String username = request.getParameter("username");

                       String password = request.getParameter("userpass");

                       String checkInfo = null;

                       String sql = "select * from users where 用户名 = '"+username+"'";

                      

                       Connection con = null;

                       Statement st = null;

                       ResultSet rs = null;

                      

                       try {

                                Class.forName("com.hxtt.sql.access.AccessDriver");

                                con = DriverManager.getConnection("jdbc:Access:/C:/Users/acer-pc/Documents/ffasdb.accdb");

                                st = con.createStatement();

                                rs = st.executeQuery(sql);

                                if(rs.next()){

                                         if(rs.getString("密码").equals(password)){

                                                   checkInfo = "登录成功!";

                                                   javax.servlet.http.HttpSession session = request.getSession();

                                                   bean.User cur_user = new bean.User(username);

                                                   cur_user.setUsertype(rs.getString("用户类型"));

                                                   session.setAttribute("current_user", cur_user);

                                                   //session.setAttribute("password", password);

                                                   response.sendRedirect("first_page.jsp");

                                         }else{

                                                   checkInfo = "密码错误!";

                                                   request.setAttribute("checkInfo", checkInfo);

                                                   RequestDispatcher rd = request.getRequestDispatcher("login.jsp");

                                                   rd.forward(request, response);

                                         }

                                }else{

                                         checkInfo = "用户不存在!";

                                         request.setAttribute("checkInfo", checkInfo);

                                         RequestDispatcher rd = request.getRequestDispatcher("login.jsp");

                                         rd.forward(request, response);

                                }

                                rs.close();

                                st.close();

                                con.close();

                       } catch (ClassNotFoundException | SQLException e) {

                                // TODO Auto-generated catch block

                                e.printStackTrace();

                       }

             }

             /**

              * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

              */

             protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

                       // TODO Auto-generated method stub

                       doGet(request, response);

             }

    }

    启动服务器,在浏览器中访问登录页面进行测试,以下是测试结果:

    登录时的输入格式控制:



    登录界面:


    登录成功界面:


    密码错误提示:

  • 相关阅读:
    JS URL传中文参数引发的乱码问题
    git (转载)
    php webservice
    php date之间的相互转换
    在图片上加字符-base64转图片-图片转base64
    转:微软面试一百题
    2014-8-17 note
    some base knowledge
    introduction
    Centos6.6 编译安装nginx
  • 原文地址:https://www.cnblogs.com/maosonglin/p/6436747.html
Copyright © 2011-2022 走看看