编码实现基本的用户登录与注册功能

1.登录页面login.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>
    <h1 align="center">用户登录</h1>
    <form action="doLogin.jsp" method="post">
        <table align="center">
            <tr>
                <td>用户名:</td>
                <td><input name="userName" type="text"></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input name="password" type="password"></td>
            </tr>
            <tr>
                <td align="center">
                    <input type="submit" name="submit" value="登录">
                    <input type="reset" name="reset" value="重置">
                    <a href="register.jsp">立即注册</a>
                </td>
            </tr>
        </table>    
    </form> 
    <%
        //当用户名不是admin,且密码不是123456时,跳转回登录界面,同时显示失败原因
        String message=(String)request.getAttribute("message");
        if(message!=null){
            out.print(message);
        }
    %>
</body>
</html>

 

2.登录结果处理页面doLogin.jsp

<title>登录处理页面</title>
</head>
<body>
    <%
        request.setCharacterEncoding("utf-8");
        String userName = request.getParameter("userName");
        String password = request.getParameter("password");
        if(userName.equals("admin") && password.equals("123456")){
            request.getRequestDispatcher("loginSuccess.jsp").forward(request, response);
        }
        else{
            response.sendRedirect("login.jsp");
        }
    %>
</body>
</html>

 

3.登陆成功界面loginSuccess.jsp

<title>登陆成功页面</title>
</head>
<body>
    <%
        String userName = request.getParameter("userName");
    %>
    <h1>欢迎<%=userName %>登录!</h1>
</body>
</html>

 

4.注册界面register.jsp

<title>注册页面</title>
</head>
<body>
    <h1>用户注册</h1>
    <form action="doRegister.jsp" method="post">
        用户名:<input name="userName" type="text"/><br/>
        用户密码:<input name="password" type="password"/><br/>
        再次输入密码:<input name="rpassword" type="password"/><br/>
        email:<input name="email" type="email"><br/>
        爱好:<input type="checkbox" name="hobbit" value="篮球"/>篮球
        <input type="checkbox" name="hobbit" value="足球"/>足球
        <input type="checkbox" name="hobbit" value="羽毛球"/>羽毛球<br/>
        <input type="submit" name="submit" value="注册">
        <input type="reset" name="reset" value="重置">
    </form>
    <%
        //当两次密码输入不一致时,注册失败,跳转回注册界面,并显示失败原因.
        String message=(String)request.getAttribute("message");
        if(message!=null){
            out.print(message);
        }
    %>
</body>
</html>

 

5.注册结果处理界面doRegister.jsp

<title>注册结果处理页面</title>
</head>
<body>
    <%    
        request.setCharacterEncoding("utf-8");        //设置请求的格式为utf-8
        //response.setCharacterEncoding("utf-8");        设置响应的格式为utf-8,有contentType则此句可不写
        String userName = request.getParameter("userName");
        //userName = new String(userName.getBytes("ISO-8859-1"),"utf-8");  当表单的提交方法为get时,为了防止乱码,可以这么写,但很少用get
        //或者直接在tomcat配置文件server.xml中修改<Connector>节点的URIEncoding属性为UTF-8
        String password = request.getParameter("password");
        String rpassword = request.getParameter("rpassword");
        String email = request.getParameter("email");
        String[] hobbits = request.getParameterValues("hobbit");
        if(!(password.equals(rpassword))){
            request.setAttribute("message","两次密码输入不一致,注册失败!");
            request.getRequestDispatcher("register.jsp").forward(request, response);
        }else{
            response.sendRedirect("login.jsp");        //重定向,register与doregister用一个请求,doregister与用另一个请求,不保留数据
            //request.getRequestDispatcher("login.jsp").forward(request, response);        //转发,register,doregister,login共用一个请求,数据也共享
        }
    %>
</body>
</html>

 

posted @ 2019-02-13 16:26  锈钉  阅读(676)  评论(0)    收藏  举报