后台管理系统中关于登陆以及cookie实现保存数据的问题

CMS内容管理系统

作用

主要是用于对网站前台的信息管理,如文字、图片、影音和其他内容的发布、更新、删除、查询等操作

需求分析

官网中的内容或信息的显示和不显示来自于后台管理系统,需要我们开发一个后台管理系统来管理官网中的信息。主要涉及到三个模块,一是文章的管理,二是轮播图的管理,最后涉及到用户的登陆和注销功能的实现。

技术选型

开发工具:eclipse
数据库:Mysql
后端框架:SSM
前端框架:jQuery、Bootstrap、GridManager表格插件等

用户登录功能实现

  1. 用户登陆实现
    用户在登陆页面输入用户名和密码,点击登录按钮或者点击回车键,这是会向后台发送ajax请求,提交表单中的数据,后台会根据得到的用户名去数据库进行查询,如果没有查到,说明没有该用户,向页面显示用户不存在;如果查到用户名,需要判断输入的密码,将传入的密码和数据库对应的密码相比较,如果不相同,说明密码输入错误,向页面显示密码错误;相反,密码匹配成功,返回用户对象,前台页面跳转到后台系统管理的首页。

User user= mapper.findUser(username);
if (user==null) { //用户不存在
throw new Exception(“用户名不存在”);
}else { //用户不为空
//判断密码
if (!user.getPassword().equals(password)) {
throw new Exception(“密码错误”);
}else { //密码正确,返回user
return user;
}

	}
  1. 记住我功能实现
    用户在是在用户名密码都输入正确的情况下,勾选了记住我,后台将正确的用户名和密码存入cookie中,前台判断从后台传过来的cookie中是否存有用户名和密码,如果存在用户名和密码,将用户名和密码截取下来,然后将用户名和密码回显在输入框内,这样下次进入登陆不再需要输入密码
    后台存入cookie
    //获取正确的用户名和密码,返回给浏览器
    Cookie cookie1 = new Cookie(“username”, username);
    Cookie cookie2 = new Cookie(“password”, password);
    //设置cookie路径
    cookie1.setPath("/");
    cookie2.setPath("/");

    		//设置cooke存活时间
    		cookie1.setMaxAge(7*24*60*60);
    		cookie2.setMaxAge(7*24*60*60);
    		
    		//将cookie放入到浏览器端
    		res.addCookie(cookie1);
    		res.addCookie(cookie2);
    

前台页面获取数据
//获取cookie信息
if(cookie1.indexOf(“username=”)!=-1){ //判断浏览器是否存在username和password
var username=null;
var password=null;
//截取
var arr=cookie1.split(";");
//遍历arr
for(var i in arr){
//判断是否存在username
if(arr[i].indexOf(“username”)!=-1){
username=arr[i].substring(arr[i].indexOf("=")+1);
}
//password是否存在
if(arr[i].indexOf(“password”)!=-1){
password=arr[i].substring(arr[i].indexOf("=")+1);
}
}
//数据回显到输入框
$("#password").val(password);
$("#username").val(username);
$("#remember").prop(“checked”,true);

用户注销功能的实现

用户注销的过程其实就是销毁session的过程

文件管理和轮播图的实现

文件管理主要是利用一个freemark的页面静态化技术,以空间换时间,生成一个静态的html文件,可以提高系统的效率。在后台系统添加内容的时候,会自动生成一个可访问的html访问路径。這里就只拿内容的修改来做一个说明:

	String path = req.getServletContext().getRealPath("/static/template");
	//生成模板
	String url = FreemarkerUtil.createFile(path,"article.ftl", article, ".html");
	Integer id = Integer.valueOf(""+article.getId());
	Article dbArticle = mapper.findByid(id);
	//把新生成的url放到article中
	article.setUrl(url);
	mapper.update(article);
	//System.err.println(article);
	//删除之前的url
	File file = new File(path,dbArticle.getUrl());
	if (file.exists()) {
		file.delete();
	}

轮播图的实现也是同样的道理,只是设计到一个文件的上传,这里要注意在spring_mvc配置文件中配置上传文件解析

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为10MB -->
<property name="maxUploadSize">
	<!-- spring el写法:10MB -->
	<value>#{1024*1024*10}</value>
</property>
 <!-- 效果同上 -->
<!-- <property name="maxUploadSize" value="1048576" /> -->
</bean>

请求的form表单中也要加上enctype="multipart/form-data"属性

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值