用servlet实现微博小程序----注册
2017-05-03 21:22
204 查看
最近在用servlet写一个简单的微博程序,途中出现了好多小错误,通过百度和请教别人,学到了很多的知识。也在这次练手中加深了对前端,后台处理机制的理解,对于后台与前端之间的交互也更加清晰。我觉得收获很大。
总结一下最近的东西,对于编写微博程序代码这块,先是分析需求,决定先让程序实现注册登录功能,大体框架搭起来,整体先保证跑起来,再逐步往上加功能,这样的设计思路我觉得能减轻后续的工作量。
今天先来说说注册部分,后续的登录等等功能之后更新~~
我代码中是通过下面这行代码实现的连接:
关于存储部分决定用数据库实现,暂时是用文件处理的,之后会更改为数据库。
贴上我的相关注册代码如下(文件实现):
注册的页面部分:
注册的servlet部分:
在编程时犯了一个低级错误,参数大小写不一致,导致注册时密码验证一直出错,还有保存文件的路径问题也值得注意哦。
操作时需要返回的成功及错误页面代码没贴出来,可以自己添加对于操作成功和错误的处理部分,试试自己编写一下SUCCESS_VIEW和ERROR_VIEW~
总结一下最近的东西,对于编写微博程序代码这块,先是分析需求,决定先让程序实现注册登录功能,大体框架搭起来,整体先保证跑起来,再逐步往上加功能,这样的设计思路我觉得能减轻后续的工作量。
今天先来说说注册部分,后续的登录等等功能之后更新~~
会员注册
会员注册这块,分为前端html页面和后台的servlet服务器处理部分。前端注册页面和服务器处理部分是使用标签连接起来的。我代码中是通过下面这行代码实现的连接:
<form action="http://localhost:8080/register.do" method = "post">
关于存储部分决定用数据库实现,暂时是用文件处理的,之后会更改为数据库。
贴上我的相关注册代码如下(文件实现):
注册的页面部分:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>微博</title> </head> <body> <center> <form action="http://localhost:8080/register.do" method = "post"> <tr> <th> <img src = "111.jpg" width = "300" height = "200"> <br> </th> </tr> <br> <br> <tr> <td> 会员注冊 <br> 邮箱地址: <input type = "TEXT" name = "邮箱地址:" size="25" maxlength="16"> <br> 用户名: <input type = "TEXT" name = "名称:" size="25" maxlength="16"> <br> 密码: <input type = "password" name = "password" size="25" maxlength="16"> <br> 确认密码: <input type="password" name="confirmedPasswd" size="25" maxlength="16"> <br> <br> <button>注冊</button> <br> </td> </tr> </form> </center> </body> </html>
注册的servlet部分:
package com.dongmengyuan; 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.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import static java.lang.System.out; /** * Created by dongmengyuan on 17-4-11. */ @WebServlet("/register.do") public class Register extends HttpServlet { private final String USERS = "/home/dongmengyuan/Desktop"; 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 resultPage = ERROR_VIEW; //窗体验证出错误,设置收集错误的List为请求属性 if(!errors.isEmpty()) { request.setAttribute("errors",errors); } else { resultPage = SUCCESS_VIEW; createUserData(email,username,password); //创建用户资料 } request.getRequestDispatcher(resultPage).forward(request,response); } private boolean isInvalidEmail(String email) { //return email == null || !email.matches("^[_a-z0-9-]+([.]" + "[_a-z0-9-]+)*@[a-z0-9-]+([.][a-z0-9-]+)*$"); return true; } //检查用户资料夹是否创建来确认用户是否已注册 private boolean isInvalidUsername(String username) { for(String file : new File(USERS).list()) { if(file.equals(username)) { return true; } } return false; } private boolean isInvalidPassword(String password,String confirmedPasswd) { return password == null || password.length() < 6 || password.length() > 16 || !password.equals(confirmedPasswd); } //创建用户资料次,在profile中储存邮件与密码 private void createUserData(String email, String username, String passwd) throws IOException { File userhome = new File(USERS + "/" + username); out.println(USERS + "/" + username); userhome.mkdir(); String fileName = userhome + "/profile"; File myFile = new File(fileName); if(!myFile.exists()) { myFile.createNewFile(); } BufferedWriter writer = new BufferedWriter(new FileWriter(fileName)); writer.write(email + "\t" + passwd); writer.close(); } }
在编程时犯了一个低级错误,参数大小写不一致,导致注册时密码验证一直出错,还有保存文件的路径问题也值得注意哦。
操作时需要返回的成功及错误页面代码没贴出来,可以自己添加对于操作成功和错误的处理部分,试试自己编写一下SUCCESS_VIEW和ERROR_VIEW~
相关文章推荐
- 在jsp中用bean和servlet联合实现用户注册、登录
- 在程序中实现注册dll
- PHP+Mysql+jQuery实现发布微博程序--PHP篇
- PHP+MySQL+jQuery实现发布微博程序——PHP篇
- Javascript实现的半自动注册小程序
- 在jsp中用bean和servlet联合实现用户注册、登录
- 本文实现了一个基于servlet技术的简单的csv文件导出的程序实例。
- Servlet+JavaBean实现注册和登陆
- C#程序如何实现COM组件的自动注册
- [收藏] Java中用Servlet容器实现程序监听
- 图文演示Flash+ASP实现用户登录/注册程序第1/2页
- 软件防拷贝注册机制的程序实现
- PHP+Mysql+jQuery实现发布微博程序--jQuery篇
- Asp.net程序注册的完整实现
- servlet 定时操作,定时访问数据库,程序应该如何实现
- JSP+JAVABEAN+SERVLET模式的注册实例实现
- 用servlet实现一个简单的购物车程序
- JSP+JAVABEAN+SERVLET模式的注册实例实现
- PHP+MySQL+jQuery实现发布微博程序——jQuery篇
- 实现购物的SERVLET程序的实战记录