技术选型
1. web层
1. Servlet:前端控制器
2. html:视图层
3. css:界面优化
4. js:动态效果
5. Filter:过滤器
6. BeanUtils:数据封装
7. jackson:json序列化工具
2. Service层
1. javamail:java发送邮件的工具
2. Redis:nosql内存数据库
3. jedis:java的redis客户端
3. Dao层
1. Mysql:数据库
2. Druid:数据库连接池
3. jdbcTemplate:jdbc的工具
### 创建数据库
1. 创建数据库:CREATE DATABASE travel
2. 使用数据库:USE travel
3. 创建表 运行sql文件
### 功能实现
1. 注册
1. 前台效果
1. 表单校验 检验模板
2. function checkUsername() {
//1.获取用户名值
var username = $("#username").val();
//2.定义正则 至少8个最多20个
var reg_username = /^\w{4,20}$/;
//3.判断,给出提示信息
var flag = reg_username.test(username);
if(flag){
//用户名合法
$("#username").css("border","");
}else{
//用户名非法,加一个红色边框
$("#username").css("border","1px solid red");
}
return flag;
}
3. 异步提交表单AJAX
在此使用异步提交表单是为了获取服务器响应的数据,因为前台使用html,不能直接使用servlet相关的域对象,只能使用ajax
2. 后端
1. 编写RegistUserServlet
1. //1.获取数据集合
Map<String, String[]> map = request.getParameterMap();
//2.封装对象
User user = new User();
try {
BeanUtils.populate(user,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//3.调用service完成注册
UserService service = new UserServiceImpl();
boolean flag = service.regist(user);
ResultInfo info = new ResultInfo();
//4.响应结果
if(flag){
//注册成功
info.setFlag(true);
}else{
//注册失败
info.setFlag(false);
info.setErrorMsg("注册失败!");
}
//将info对象序列化为json
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(info);
//将json数据写回客户端
//设置content-type
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(json);
2. 编写UserDao以及UserDaoImpl
3. public User findByUsername(String username);
/**
* 用户对象保存
* @param user
*/
public void save(User user);
User findByCode(String code);
void updateStatus(User user);
User findByUsernameAndPassword(String username, String password);
}
3. 编写UserService以及UserServiceimpl
1.
2. 登陆
3. 退出
实战--第一天
最新推荐文章于 2021-06-30 11:09:17 发布