【JavaWeb】用Servlet实现用户登录/注册

导读:用Servlet可以实现用户的登录和注册。这里只是把数据放在ServletContext和Session中,并没有存在数据库。


准备:

首先要创建一个User的类,用来封装用户的各种属性,并为其设置getter/setter方法。

public class User {
    private String username;
    private String password;
    private String nickname;
    private String sex;
    private String hobby;
    private String path;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    //其它属性的getter/setter
}

然后由于需要把用户数据存放到全局ServletContext当中,所以需要创建一个InitServlet,用来初始化全局对象。需要制定loadOnstartup属性。

@WebServlet("/InitServlet",loadOnStartup=2)
public class InitServlet extends HttpServlet {
    @Override
    public void init() throws ServletException {
        //创建一个List集合用于保存用户的注册信息
        List<User> list=new ArrayList<User>();
        //将list保存到ServletContext中
        //在这里,也就是只要Tomcat一启动,所有注册的用户信息都会存储在这个List中,
        //如果Tomcat关闭,则数据清空。实际情况应该在数据库中保存。
        this.getServletContext().setAttribute("list",list);
    }
}

如果用户上传的图片名字一样,会覆盖掉。所以还需要对用户上传的图片名字进行处理,让其唯一化。 

public class UploadUtils {
    public static String getUUIDFileName(String fileName){
        //获取扩展名
        int idx=fileName.lastIndexOf(".");
        String extension=fileName.substring(idx);
        return UUID.randomUUID().toString().replace("-","")+extension;
    }
}

 最后,还需要编写一个处理Cookie的类,用于Cookie处理。

public class CookieUtils {
    public static Cookie findCookie(Cookie[] cookies,String name){
        if(cookies==null){
            //没有携带cookie
            return null;
        }else{
            for(Cookie cookie:cookies){
                if(name.equals(cookie.getName())){
                    return cookie;
                }
            }
            //没带包含username的cookie
            return null;
        }
    }
}

注册: 

regist.jsp用于注册,由于form表单需要上传文件,所以enctype需要="multipart/form-data"。表单的数据提交到RegistServlet中。

<form action="/reg_login/RegistServlet" method="post" enctype="multipart/form-data">
    <table>
        <tr>
            <td class="td1">用户名</td>
            <td><input type="text" class="input1" name="username"></td>
        </tr>
        <!--其它用户属性-->       
        </table>
</form>

在RegistServlet中,首先要尝试从regist.jsp中发来的请求,是由含有文件对象。如果有,就解析这个对象。

@WebServlet("/RegistServlet")
public cl
  • 20
    点赞
  • 180
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
JavaWeb是基于Java语言开发的Web应用程序框架,它可以很方便地实现用户登录注册功能,并且可以利用MySQL数据库来存储用户信息。 首先,我们可以在JavaWeb中创建一个登录页面和一个注册页面。登录页面包括用户名和密码输入框,注册页面包括用户名、密码和确认密码输入框。 当用户点击登录按钮时,JavaWeb会将用户输入的用户名和密码发送到服务器端。服务器端通过MySQL数据库中的用户表,查询是否存在匹配的用户名和密码。如果匹配成功,则登录成功;否则,登录失败。 当用户点击注册按钮时,JavaWeb会将用户输入的用户名和密码发送到服务器端。服务器端需要先检查用户名是否已经存在于用户表中,如果存在,则返回错误提示;否则,在用户表中插入新的用户记录,并返回注册成功的提示信息。 在实现中,我们可以使用JavaWeb框架中的Servlet来处理用户提交的登录注册请求。在处理登录请求时,我们可以使用JDBC来连接MySQL数据库,并使用SQL语句进行查询操作。在处理注册请求时,我们可以使用相同的JDBC连接MySQL数据库,并使用SQL语句进行插入操作。 此外,为了增加用户体验,我们可以利用JavaWeb框架提供的Session来维护用户的登录状态。在用户登录成功后,我们可以将其登录信息存储在Session中,在用户访问其他页面时进行验证,以确保用户已经登录。 通过以上步骤,我们可以很方便地实现用户登录注册功能,并利用MySQL数据库来存储用户信息。这样,用户就可以通过登录来访问需要身份认证的页面,而无需重复注册。同时,我们也可以通过MySQL数据库来管理用户信息,例如修改密码、找回密码等操作。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值