easymall项目

本文档详细介绍了EasyMall项目的环境搭建过程,包括创建项目、配置hosts、部署到服务器等步骤。同时,文章还深入讲解了用户注册和登录功能的实现,包括RegistServlet的编写、User类的设计、UserService和UserDao接口的实现,以及JSP页面的调整和验证码功能。整个过程涵盖了表单验证、数据交互和页面跳转等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

反射:


EasyMall项目总结

1.1 环境搭建

1.1.1 环境搭建

1. 创建EasyMall项目

2. 配置www.easymall.com主机, 并正hosts文件中配置主机名和IP地址的映射关系

3. EasyMall项目部署到easymall主机中

 

1.1.2 导入页面(JSP)

首页: _head.jsp _foot.jsp index.jsp

注意: 需要在index.jps中将_head.jsp_foot.jsp包含进来

注册页面: regist.jsp

登陆页面: login.jsp

 

1.1.3 修改jsp中文件及图片的路径

图片和文件的路径默认是: <link href=”css/regist.css”>

应该将路径统一修改: <link href=”${ pageContext.requeset.contextPath }css/regist.css”>

 

 

1.2 实现注册功能

1.2.1 修改regist.jsp

将注册表单提交地址修改为: <form onsubmit="return formObj.checkForm()" action="${ pageContext.request.contextPath }/servlet/RegistServlet" method="POST">

 

1.2.2 创建RegistServlet, 并处理注册请求

//1.处理乱码

//>>请求参数乱码

//>>响应正文乱码

 

//2.获取请求参数, 并将请求参数封装进User对象中

User user = new User();

BeanUtils.populate(user, request.getParameterMap());

 

//3.调用User对象中的checkData方法校验数据

//如果校验出错,  捕获异常, 获取异常消息, 将消息存入request, 并通过转发带回注册页面

 

//4.实现注册(调用service层的方法实现注册)

UserService service = new UserService();

service.registUser(user);

 

//5.注册成功, 定时刷新到主页

response.getWriter().write(“注册成功, 3秒跳转回主页”);

response.setHeader(“Refresh”, “3;url=”+request.getContextPath()+”/index.jsp”);

1.2.3 创建User, 添加属性和方法

private int id;

public void checkData(){

//校验数据

}

 

1.2.4 创建UserService接口, 并创建UserServiceImpl实现类, 并添加需要方法

1. 添加registUser()方法

 

1.2.5 创建UserDao接口,并创建UserDaoImpl实现类, 并添加需要的方法

public boolean findUserByUsername(String username) {

try {

User user = JDBCUtils.query("select * from user where username=?", new BeanHandler<User>(User.class), username);

return user != null;

} catch (SQLException e) {

e.printStackTrace();

throw new RuntimeException(e);

}

}

public void addUser(User user) {

try {

JDBCUtils.update("insert into user values(null, ?,?,?,?)",

user.getUsername(),

user.getPassword(),

user.getNickname(),

user.getEmail());

} catch (SQLException e) {

e.printStackTrace();

throw new RuntimeException(e);

}

}

public User findUserByUsernameAndPassword(String username, String password) {

try {

User user = JDBCUtils.query("select * from user where username=? and password=?", new BeanHandler<User>(User.class), username, password);

return user;

} catch (SQLException e) {

e.printStackTrace();

throw new RuntimeException(e);

}

}

 

1.2.6 编辑regist.jsp

1.regist.jsp中获取注册失败后的错误提示消息

 

2. 注册失败后, 注册表单的数据回显

 

 

3. 修改验证码图片标签的路径, 指向ValiImageServlet

<img id="img" src="${ pageContext.request.contextPath }/servlet/ValiImageServlet" alt="" />

 

4. 点击验证码图片换一张

 

5. 注册表单校验

非空校验/两次密码是否一致/邮箱格式是否正确

参见easymall中的regist.jsp

6. 利用ajax检查用户名是否存在

 

1.2.7 创建ValiImageServlet, 并实现其中的代码

 

 

1.3 登陆功能实现

1.3.1 修改login.jsp

将登陆表单的地址执行LoginServlet

<form action="${pageContext.request.contextPath}/servlet/LoginServlet" method="POST">

1.3.2 创建LoginServlet, 并实现登陆

//1.处理请求参数乱码

 

//2.获取请求参数(用户登陆信息)

String username = ..

String password = ..

String remname = ...

 

 

//3.调用UserService层的loginUser方法检查用户名密码是否正确

User user = service.loginUser(username, passsword);

 

if(user != null){//表明用户名密码正确, 进行登陆

//是否需要记住用户名

if(“true”.equals(remname)){

//记住用户名

}else{

//取消记住用户名

}

 

//实现登陆, User对象保存进session中作为登陆的标识

request.getSession().setAttribute(“user”, user);

//登陆成功, 跳转回主页

response.sendRedirect(request.getContextPath+“/index.jsp”);

}else{

//用户名密码不正确

//转发回登陆页面, 提示用户用户名或密码不正确

//xxx

}

1.3.3 修改UserServiceImpl, 添加登陆的方法

 

 

1.3.4 修改UserDaoImpl, 添加根据用户名和密码查询用户信息的方法

1.3.5 修改主页中_head.jsp, 根据用户的登陆状态进行显示

 

 

1.3.6 修改login.jsp

1. 获取登陆失败后的提示消息

 

 

1.3.7 获取Cookie中记住的用户名

在用户名input输入框中的value属性中通过el来获取记住的用户名

 

 

使用js代码对取出的用户名进行url解码

 

 

勾选”记住用户名”复选框

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值