package com.tarnett.controller;
import com.tarnett.constant.MessageConstant;
import com.tarnett.entity.PageResult;
import com.tarnett.entity.QueryPageBean;
import com.tarnett.entity.Result;
import com.tarnett.pojo.User;
import com.tarnett.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
// 1. 声明该类是一个控制器
// 2. 该控制器响应的都是数据
@RestController
@RequestMapping("/user")
public class UserController {
// 自动注入
@Autowired
private UserService userService;
@RequestMapping("/checkUsername")
public Result checkUsername(String username) {
// 对数据进行规则校验
if(username==null||username.length()==0){
return new Result(false,MessageConstant.REGIST_USERNAME_NO_FAIL);
}
if(username.length()<3||username.length()>8){
return new Result(false,MessageConstant.REGIST_USERNAME_FAIL);
}
User user = userService.checkUsername(username);
if(user != null) {// 如果用户名不为空,则说明该用户名已经被注册使用了
return new Result(false, MessageConstant.REGIST_USERNAME_EXSIT);
}
return new Result(true, "");
}
@RequestMapping("/registe")
public Result regist(User user, String check, HttpSession session, User user1) {
System.out.println("请求进来控制了");
if(user.getUsername()==null||user.getUsername().length()==0){
return new Result(false,MessageConstant.REGIST_USERNAME_NO_FAIL);
}
if(user.getUsername().length()<3||user.getUsername().length()>8){
return new Result(false,MessageConstant.REGIST_USERNAME_FAIL);
}
// 其他校验自己写
// 2. 校验验证码是否正确 TODO
if(check==null||check.length()==0){
return new Result(false,"请输入验证密码");
}
if(check.length()!=4){
return new Result(false,"请输入正确的验证码!!");
}
// 2.1 获取用户提交的验证码 :在方法形参里面添加String check
// 2.2 获取session中保存的验证码
String session_code = (String) session.getAttribute(MessageConstant.CHECKCODE_SERVER);
// 因为验证码是一次性的,使用完后需要清除验证码
session.removeAttribute(MessageConstant.CHECKCODE_SERVER);
if(session_code==null||!session_code.equalsIgnoreCase(check)){
return new Result(false,MessageConstant.REGIST_CHECK_FAIL);
}
// 3. 调用业务逻辑层的方法去保存用户的数据
try {
userService.regist(user1);
}catch (RuntimeException e){
return new Result(false,MessageConstant.REGIST_USERNAME_EXSIT);
} catch (Exception e){
e.printStackTrace();
return new Result(false,MessageConstant.REGIST_USER_FAIL);
}
return new Result(true, MessageConstant.REGIST_USER_SUCCESS);
}
@RequestMapping("/active")
public void active(String code, HttpServletResponse response){
try {
// 1. 获取请求参数 通过在方法的形参中添加一个code参数,可以获取激活码
User user=userService.active(code);
if(user==null){
response.sendRedirect("/pages/active_fail.html");
}else {
// 通过激活码能够查询到用户
if(user.getStatus().equals("Y")){
response.sendRedirect("/pages/active.html");
}else {
// 如果用户没有激活,则表示用户激活成功
response.sendRedirect("/pages/active_ok.html");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
@RequestMapping("/login")
public Result login(User user, String check, HttpSession session, HttpServletRequest request,HttpServletResponse response){
// 0. 定义一个局部变量,用来接受showCheck这个cookie
Cookie showCheckCookie=null;
// 0. 定义一个标志为,用来判断是否需要校验码 false: 不需要验证码 true:需要校验验证码
boolean flag=false;
// 1. 获取所有的cookie
Cookie[] cookies = request.getCookies();
// 2. 需要对Cookie进行遍历,查找是否存在showCheck名字的cookie
for (Cookie cookie : cookies) {
if(cookie.getName().equals("showCheck")){
showCheckCookie=cookie;
// 获取该cookie中的值,并且转换为int类型
int count=Integer.parseInt(showCheckCookie.getValue());
if(count>=3){
// 需要检验验证码
flag=true;
break;
}
}
}
// 在不存在showCheck这个cookie
// 存在showCheck这个cookie,但是其值小于3
// 1. 对数据进行规则校验 TODO
// 2. 对验证码进行校验
// 2.1 获取session中保存的验证码
if(flag){
String session_code =(String) session.getAttribute(MessageConstant.CHECKCODE_SERVER);
// 2.2 清除session中保存的验证码数据
session.removeAttribute(MessageConstant.CHECKCODE_SERVER);
// 2.3 对验证码的内容进行比较
if(session_code==null||!session_code.equalsIgnoreCase(check)){
return new Result(false,MessageConstant.REGIST_CHECK_FAIL);
}
}
// 3. 调用业务逻辑层登陆方法
User loginUser=userService.login(user);
// 4. 对返回结果进行判断
if(loginUser==null){
if(showCheckCookie==null){
// 第一次账号或密码错误
showCheckCookie=new Cookie("showCheck","1");
}else {
// 不是第一次账号或者密码错误
// 获取原来的值
int count = Integer.parseInt(showCheckCookie.getValue());
// 在原来的基础上进行加 1
count=count+1;
// 把加 1之后的值设置回cookie对象
showCheckCookie.setValue(count+"");
}
// 需要把cookie发送给浏览器
response.addCookie(showCheckCookie);
// 说明用户名或者密码错误,登陆失败
return new Result(false,"用户名或密码错误");
}
// 5. 判断用户是否已经激活
if(loginUser.getStatus().equals("N")){
// 说明用户没有激活
return new Result(false,"该账户尚未激活,请立即激活");
}
// 表示用户登陆成功
// 用户登陆成功之后需要将用户信息保存到session
session.setAttribute("loginUser",loginUser);
// 用户登陆成功之后需要删除showCheck这个cookie
showCheckCookie=new Cookie("showCheck","0");
// 设置其最大的存活时间,单位为秒
showCheckCookie.setMaxAge(0);
// 需要把cookie发送给浏览器
response.addCookie(showCheckCookie);
return new Result(true,"");
}
@RequestMapping("/queryUserInfo")
public Result queryUserInfo(HttpSession
没有合适的资源?快使用搜索试试~ 我知道了~
以ssm框架为基础的旅游网站系统
共2000个文件
jpg:1765个
png:46个
class:40个
需积分: 8 1 下载量 113 浏览量
2022-07-20
16:01:54
上传
评论 2
收藏 118.26MB RAR 举报
温馨提示
以ssm框架为基础的旅游网站系统,适合在校大学生课程答辩使用 后台功能: 用户列表,分类列表,商家列表,产品列表,登录功能,有增删改查啊功能 前台功能:注册,登录,搜索功能,我的收藏,收藏排行榜,分类列表和查看详情
资源详情
资源评论
资源推荐
收起资源包目录
以ssm框架为基础的旅游网站系统 (2000个子文件)
0014a4b06eee3d0c0d54402a47ab2601b2862b 96KB
008b06024199cbaed3d36c0da521d1abca803c 4KB
009f8ce67f5dff91e2d65e9325c3a5697d41fa 29KB
00b27c6d87e71d5101d3a275e8a590c7d04c10 11KB
00e160051ae4eed429e52aeed766dd9f2bd3e4 22KB
00ef365fcd383f58df86cd9434fb0c67fb8fb6 1.12MB
00ffab7828f4818589659c804ec2cfd99baed3 170B
01-jQueryhtml 537B
013c0bba320d27bc26cd5eadd07b7d43758d7c 53KB
0188152beba4e15d94fb0ad7f2883db078e97d 1KB
019708311ae711d560c6acbf7329d56cbf2221 49KB
01a0f2ef21cf041b4966313bde12f08f27697d 95B
01a2dc22420838f18b2dd70390dfef65ce7804 2KB
020d39214280d30463fd0b0714fb0fc30a1356 427B
021049f3a652f785c2d92839c78a379dba46a6 46KB
022ae211e2e8980448f34d676f6dd9fdc9ae56 31KB
023a9beac51f14c1a65219323be2986b3cfabe 665B
0295462f67aeae562a930a8def4d8f2d444160 755B
0298da4d8b3ec9cd37f8e5614fbe6d681fed4a 25KB
032aabd85b43a058cfc7025dd4fa9dd325ea97 187B
03779d58e916c0596a33ba467bba8915dd4267 47KB
03c907de0553fe4b098f0cb078f94dd9457b44 29KB
03e4d778c3ae86af1917bd0b2ddccbdd607da4 40KB
03fa4575ac71d0680d6df92ae6502ac683ef34 32KB
03fbe5e9eb2d71cc442d81c1df619bf0d3ef6a 17KB
043273df29d2c785aeb9d711be4f0f65c4688d 132B
0440ce89f2a408aa699b65100e18f15e0f09ca 8KB
04525a16e811eda8fc4fd61cdb7465c64d165f 38KB
0508c3ebe6ca96c27ee02912d7b2d3049974ae 27KB
050cd361be50182be8be0eb721cc1ea3f64c36 27KB
0593a72a166361bb1040bfede12e00ce1d49ad 35KB
05bed4f16e8cd686b7d1b54eed15fc6a688836 29KB
06760df04b290c13645f57628480316a5e78bb 9KB
06d01f0893bd1d3a5a3ba9a79c17e6adc23c51 15KB
072f2b341d44e014b42729db282f19db8a8dfd 43KB
07552a4c05f5c737d9abf2365b431abe04e939 12KB
0790bd6689e5ef1c5e9cfeb0973ee828eb2746 46KB
07be11978fe3bcd97d8f2d977f9d47b35ac92a 8KB
089f152e4bf7a398f533ba11834d29549aac31 26KB
08a73a8b72f9a59e713de15cf3c0f047af3beb 54KB
08f7f89bdb1119abc981a0c3f2f0d4be283078 50KB
092b73a8a54f4ea336d60723899d9c212ba74e 286B
098cdc171c50b378ae835cf4003bee975b91a9 32KB
09ccc97228adc4ef5e53ddb93a0a1e27698c9d 46KB
09f56721c574c519697ecd7302a28104eb5b5d 26KB
09ff75197ed2c084a1594811a49cd34ff78a77 27KB
0a0d7d229b93f402d98690ea3d4203f58f63b3 53KB
0a945568804b111846b31319962cd151ff2dc4 45KB
0aa285f5a347775df25d98173c5a2f9c6851aa 24KB
0aa5feffe34b318279a8766a63809d54875ba1 20KB
0abea4f61c61acbb9167aef04f3df53455c316 31KB
0b0a2e84a968f8e966ece3b08edf66b143971b 34KB
0b24440d8fce847fe0e358970a659db11055c7 11KB
0b77818df4483188be3468564535b711158193 43KB
0b8450240636fa874715430951a7fe0ff1bb39 43KB
0bbd0c809e2cb09958e885bd481c10a20cb99c 2KB
0bf0671a22d9a8124c7ffc401768e454821572 1KB
0c07cb039d9e293df5ab9059ab9bf6545ccd2b 37KB
0c1458dececae7f05e5c32091d77a8442c3859 9KB
0c2b4991b41a56fd332bca9b82dc80bf57b0e4 53KB
0c7ae2a1f453797544ce8d35e04dfe4befa5a9 215B
0caea2c4b44be04f2132fd876b20b27001c4ed 32KB
0cf08c755bc0f924734f219b6a0f1a83ff0666 38KB
0d218fab9a5f299949b4d6eaed4b503915dfba 461B
0d2c0d238acef5ff3005b687c2ea8217516126 30KB
0d492c0a8f5088bfbc4c8b91d0037c6a3dee3d 7KB
0d5f43391b9f264b91442c1e702428b2737385 11KB
0d6afc890129d5905c85f8ac871814a4f93e93 33KB
0d8f256416a7218215e6fe6b62c5bed2e41ed7 29KB
0db7530823712f3bef355d0af9320d403d356f 942B
0dcf87cbb3d7750d31600abb7139235b02ec06 38KB
0df04524bf2cf2bd414bd8d30886877f8516a0 36KB
0df18e9376752e389c32d4569db22ba6f6a6fc 31KB
0e0b1f9d2242eb7dab2102c8923b8eab29f736 1KB
0e64ab29284bbe254edad35d8a3c285f6c4e6d 2KB
0e7b5b311670242260ec1f9e00ecdab61cad94 498B
0eb5eb980dc9feb09ac829753df6996685c431 431B
0eb5fc3582c7fbc09677896adf5024967fe08d 39KB
0f26debb2e162585af29a4a7666afef58fb979 11KB
0f409ede38c2cf3d97d10c89e75cc06689b5d8 56KB
0f77aab5b24331c07fe0dfd6a174d9d32a3e80 11KB
0f7e2c7f3da2241caa7c4d03af949744bd3165 6KB
1040ae94f3b72c4b4d700698eb20ab89fd1e74 48KB
10cb0db42c22cef1f9790fd325cbc5a08b5dd7 38KB
1126bb8ec71004ac983e01ee62319c3b64a279 373B
112cc34d226233c7e8f6d010bfdd3da0221398 2KB
123e6979f6148281921e7c1ce42bfb631edfe7 36KB
12d5518830f73c147f3b00643b67956eacdee7 96KB
12e8ba812c867234bbd8eaed308c248351f36a 24KB
131842b1cde1a98ae54d0654de6948fefd8a4b 46KB
136b0feba384ab0eb4ecca71f704f62c733ba2 32KB
13b397f9658ddf9e62e08e3bb646c1535b6613 30KB
13efb22cd6b486ada8ac1b2973f6eaad20a560 17KB
13f53440341a07dec5e9c82fb409ea8f6cb464 1KB
13f65e8e51d92427887ceb478fc124462bd716 38KB
13fc60404b91e398a37200c4a77b645cfd9586 75KB
13fc609ab6f21774de0cb7e01360095584f65b 24KB
142cd8bf6ea0c035b8c8c8d5caf51432ef7cd2 24KB
14baded367248d0de50bca6ffdfccadbb5ebd2 10KB
14bb288ee7ce9c66aed2e115f6b15878fbec5f 47KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
十三豆啊
- 粉丝: 173
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0