00 Java项目实战之注册登录

本文详细介绍了使用Java实现注册登录功能的全过程,包括项目框架分析、搭建、注册及登录功能的流程、验证码实现、服务器端表单校验等。涉及到的组件包括JSP、Servlet、UserService、UserDao等,数据库采用users.xml存储用户数据。
摘要由CSDN通过智能技术生成

1 项目框架分析

1、功能
(1)注册
(2)登录

2、JSP
(1)login.jsp:登录表单
(2)regist.jsp:注册表单
(3)index.jsp:主页(只有登录成功才能看到)

3、Servlet
(1)LoginServlet
(2)RegistServlet

4、Service
(1)UserService:与用户相关的业务类

5、Dao
(1)UserDao:与用户相关的数据类

6、Domain
(1)User(对应数据库,还要对应所有表单)
|——username
|——password
|——verifyCode

7、数据库名:users.xml

<users>
	<user username="xxx" password="xxx" />
	<user username="xxx" password="xxx" />
</users>

2 项目框架搭建

1、创建空项目
2、导包
(1)CommonUtils
|——commons-beanutils.jar
|——commons-logging.jar
|——dom4j
3、建包
(1)org.lks.user.domian
|——User
(2)org.lks.user.dao
|——UserDao
(3)org.lks.user.service
|——UserService
(4)org.lks.user.web.servlet
|——LoginServlet
|——RegistServlet
4、jsp
(1)login.jsp
(2)regist.jsp
(3)index.jsp
5、在项目路径中创建src/userdata/users.xml文件存储用户数据
(1)添加根元素<users>
(2)保证文件为utf-8编码

3 注册功能流程分析

1、注册
(1)regist.jsp
|——第一步:完成regist.jsp的基本功能

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Register</title>
</head>
<body>
<h1>Register</h1>
${
   requestScope.userExceptionMessage}
<form action="${pageContext.request.contextPath }/RegisterServlet" method="post">
Username: <input type="text" name="registerUsername" value="${requestScope.registerUsername }" /><br/>
Password: <input type="password" name="registerPassword" value="${requestScope.registerPassword }"/><br/>
<input type="submit" value="sign up" />
</form>
</body>
</html>

(2)RegistServlet
|——封装表单数据,封装到User对象中
|——调用service的regist()方法
|————如果这个方法没有出问题,给页面显示成功信息。
|————如果这个方法抛出了异常,把错误信息保存到request域,转发到regist.jsp(显示错误信息)。

	package org.lks.loginandregister.web.servlet;

import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.Map;

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 org.lks.loginandregister.service.UserException;
import org.lks.loginandregister.service.UserService;

@WebServlet(name="/RegisterServlet", urlPatterns= {
   "/RegisterServlet"})
public class RegisterServlet extends HttpServlet{
   

	/**
	 * default serial version ID
	 */
	private static final long serialVersionUID = 1L;

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
   
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		UserService userService = new UserService();
		Map<String,String[]> map = request.getParameterMap();
		Iterator<String> iter = map.keySet().iterator()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值