码迷,mamicode.com
首页 > 其他好文 > 详细

微博小程序 版本一

时间:2017-02-18 00:59:58      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:userdata   res   存储   invalid   lin   log   home   utf-8   print   

先进行演示再看代码  

登录网站首页

技术分享

 

点击还不是会员

 技术分享

输入合法的地址 名称  密码

技术分享

技术分享

 

 返回再次输入

技术分享

注册成功实际上是在电脑的盘符中建立文件夹  文件夹里面有个profile文件  这里暂时没有用到数据库

 

技术分享

技术分享

 

 技术分享

如果注册过程中存在错误  就会打印错误信息

 

登陆

技术分享

 

登陆成功

技术分享

 

 

程序组成如下

静态网页 两个  

 

登录页面

<!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>Gossip 微网志</title>
<link rel="stylesheet" href="css/index.css" type="text/css">
</head>
<body>
<div id="loginPanel">
    <div>
        <img src=‘images/caterpillar.jpg‘ alt=‘Gossip 微网志‘/>
    </div>  
    <a href=‘register.html‘>还不是会员?</a>
    <p>
    <form method=‘post‘ action=‘login.do‘>
        <table bgcolor=‘#cccccc‘>
            <tr>
                <td colspan=‘2‘>会员登录</td>
            <tr>
                <td>名称:</td>
                <td><input type=‘text‘ name=‘username‘></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input type=‘password‘ name=‘password‘></td>
            </tr>
            <tr>
                <td colspan=‘2‘ align=‘center‘><input type=‘submit‘ value=‘登入‘></td>
            </tr>
            <tr>
                <td colspan=‘2‘><a href=‘forgot.html‘>忘记密码?</a>
                </td>
            </tr>
        </table>
    </form>
    </div>
    <div>
        <h1>Gossip ... XD</h1>
           <ul>
        <li>谈天说地不奇怪
        <li>分享讯息也可以
        <li>随意写写表心情
    </ul>
    </div>
</body>
</html>

注册页面

<!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>Gossip 微网志</title>
</head>
<body>
    <h1>会员注册</h1>
    <form method=‘post‘ action=‘register.do‘>
        <table bgcolor=#cccccc>
            <tr>
                <td>邮件地址:</td>
                <td><input type=‘text‘ name=‘email‘ size=‘25‘ maxlength=‘100‘>
                </td>
            </tr>
            <tr>
                <td>名称(最大16字符):</td>
                <td><input type=‘text‘ name=‘username‘ size=‘25‘
                    maxlength=‘16‘>  
                </td>
            </tr>
            <tr>
                <td>密码(6到16字符):</td>
                <td><input type=‘password‘ name=‘password‘ size=‘25‘ maxlength=‘16‘>
                </td>
            </tr>
            <tr>
                <td>确认密码:</td>
                <td><input type=‘password‘ name=‘confirmedPasswd‘ size=‘25‘ maxlength=‘16‘>
                </td>
            </tr>
            <tr>
                <td colspan=‘2‘ align=‘center‘><input type=‘submit‘ value=‘注册‘>
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

 

index的css  图片就不给出来了

body {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px
}

li,td {Arial , Helvetica, sans-serif;
    font-size: 13px
}

hr {
    color: #3333cc;
    width: 300;
    text-align: left
}

a {
    color: #000000
}

#loginPanel {
	width : 250px;
	float : left;
}

  

控制器两个

技术分享

登陆控制器

package cc.openhome.controller;

import java.io.*;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/login.do")
public class Login extends HttpServlet {
    private final String USERS = "F:/USERDATABASE";
    private final String SUCCESS_VIEW = "member.view";
    private final String ERROR_VIEW = "index.html";
    
    protected void doPost(HttpServletRequest request, 
                          HttpServletResponse response) 
                            throws ServletException, IOException {
     String userName=request.getParameter("username");
     String passWord=request.getParameter("password");
     if(checkLogin(userName,passWord))
     {
         request.getRequestDispatcher(SUCCESS_VIEW).forward(request, response);;
     }
     else
         //如果用户名密码不正确 重定向回到首页
         response.sendRedirect(ERROR_VIEW);
        
    }
  
    /**
     * 通过检索文件判断是否存在账号密码
     * @param username
     * @param password
     * @return
     * @throws IOException
     */
    private boolean checkLogin(String username, String password) 
                          throws IOException {
        if(username != null && password != null) {
            for (String file : new File(USERS).list()) {
                if (file.equals(username)) {
                    BufferedReader reader = new BufferedReader(
                            new FileReader(USERS + "/" + file + "/profile"));
                    String passwd = reader.readLine().split("\t")[1];
                    if(passwd.equals(password)) {
                        return true;
                    }
                }
            }
        }
        return false;
    }
}

注册控制器

package cc.openhome.controller;

import java.io.*;
import java.util.*;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/register.do")
public class Register extends HttpServlet {
    private final String USERS = "F:/USERDATABASE";
    private final String SUCCESS_VIEW = "success.view";
    private final String ERROR_VIEW = "error.view";

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
          
        String email=request.getParameter("email");
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        String confirmedPasswd=request.getParameter("confirmedPasswd");
        
        List<String> errors=new ArrayList<String>();
        //判断邮件是否正确
        if(isInvalidEmail(email))
        {
            errors.add("未填写邮件或邮件格式不正确");
        }
        //判断用户名是否正确
        if(isInvalidUsername(username))
        {
            errors.add("用户名称为空或已存在");
        }
        //判断密码是否正确
        if(isInvalidPassword(password, confirmedPasswd))
        {
            errors.add("请确认密码符合格式并再次确认密码");
        }
        String resultType=ERROR_VIEW;
        
        //如果有任何错误
        if(!errors.isEmpty())
        {
            request.setAttribute("errors", errors);            
        }
        //如果没有任何错误
        else
        {
            resultType=SUCCESS_VIEW;
            createUserData(email, username, password);
        }
        
        request.getRequestDispatcher(resultType).forward(request, response);
        
    }
 
    /**
     * 判断是否是非法邮箱
     * @param email
     * @return
     */
    private boolean isInvalidEmail(String email) {
        return email == null
                || !email.matches("^[_a-z0-9-]+([.]"
                        + "[_a-z0-9-]+)*@[a-z0-9-]+([.][a-z0-9-]+)*$");
    }

    /**
     * 通过文件名来判断是否有用户存在
     * @param username
     * @return
     */
    private boolean isInvalidUsername(String username) {
        //如果没有输入任何字符 得到的其实是空串而不是Null
          if(username=="")  
              return true;
          
        //列出所有目录  如果有该目录  则说明用户存在
        for (String file : new File(USERS).list()) 
        {  
            //判断是否存在文件(用户)且文件名称和我们输入的是否一样
            if (file.equals(username)) {
               
                return true;
                
            } 
        }
        return false;
    }
  
    /**
     * 判断密码是否合法且两次输入是否相同
     * @param password
     * @param confirmedPasswd
     * @return
     */
    private boolean isInvalidPassword(String password, String confirmedPasswd) {
        return password == null || password.length() < 6
                || password.length() > 16 || !password.equals(confirmedPasswd);
    }
   /**
    * 创建用户数据并写入文件
    * @param email
    * @param username
    * @param password
    * @throws IOException
    */
    private void createUserData(String email, String username, String password)
            throws IOException {
        File userhome = new File(USERS + "/" + username);
        //以用户名的形式创建目录
        userhome.mkdir();
        //在目录中再创建一个profile存储邮箱和密码
        BufferedWriter writer = new BufferedWriter(
                new FileWriter(userhome + "/profile"));
        writer.write(email + "\t" + password);
        writer.close();
    }
}

 

 

 

视图三个  这里先不用jsp  直接在Servlet中打印输出

技术分享

 注册失败页面

package cc.openhome.view;

import java.io.*;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/error.view")
public class Error extends HttpServlet {
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    
		//设置返回编码
		response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE html PUBLIC " +
                "‘-//W3C//DTD HTML 4.01 Transitional//EN‘>");
        out.println("<html>");
        out.println("<head>");
        out.println("  <meta content=‘text/html; charset=UTF-8‘" 
                + "http-equiv=‘content-type‘>");
        out.println("  <title>新增会员失败</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>新增会员失败</h1>");
        out.println("<ul style=‘color: rgb(255, 0, 0);‘>");


      //取得放在请求域中的错误信息
        List<String> errors=(List<String>) request.getAttribute("errors");
     
        for(String error:errors)
        {
        	out.println("<li>"+error+"<li>");
        }
        out.println("</ul>");
        out.println("<a href=‘register.html‘>返回注册页面</a>");
        out.println("</body>");
        out.println("</html>");
        out.close();
	}

}

登陆成功页面

package cc.openhome.view;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/member.view")
public class Member extends HttpServlet {
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	       response.setContentType("text/html;charset=UTF-8");
	        PrintWriter out = response.getWriter();
	        out.println("<!DOCTYPE html PUBLIC ‘-//W3C//DTD HTML 4.01 Transitional//EN‘>");
	        out.println("<html>");
	        out.println("<head>");
	        out.println("  <meta content=‘text/html; charset=UTF-8‘ http-equiv=‘content-type‘>");
	        out.println("  <title>会员登入成功</title>");
	        out.println("</head>");
	        out.println("<body>");
	        out.println("<h1>会员 " + request.getParameter("username") + " 你好</h1>");
	        out.println("</body>");
	        out.println("</html>");

	        out.close();
	}
}

 

注册成功输出页面

package cc.openhome.view;

import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/success.view")
public class Success extends HttpServlet {
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    response.setContentType("text/html;charset=UTF-8");
	    PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE html PUBLIC ‘-//W3C//DTD HTML 4.01 Transitional//EN‘>");
        out.println("<html>");
        out.println("<head>");
        out.println("  <meta content=‘text/html; charset=UTF-8‘ http-equiv=‘content-type‘>");
        out.println("  <title>会员注册成功</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>会员 " + request.getParameter("username") + " 注册成功</h1>");
        out.println("<a href=‘index.html‘>回首页登入</a>");
        out.println("</body>");
        out.println("</html>");

        out.close();
	}
}

  

 

微博小程序 版本一

标签:userdata   res   存储   invalid   lin   log   home   utf-8   print   

原文地址:http://www.cnblogs.com/HJL085/p/6412066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!