shop登陆注册、分页、shopback拦截器

//三层模型 : Web Service Dao : 分工明确 细化功能

//MVC模型  :  模型模块  视图模块  控制模块:三层模型是对C模块的细分

首先在idea 下web文件新建head.jsp  register.jsp  login.jsp  在WEB-INF文件下新建main.jsp页面

在head.jsp中引入jQuery和jstl包

然后在regist.jsp和login.jsp中引入head.jsp

在页面中编写input标签,用于接收参数传输给后台进行接收及处理

1、可以写按钮事件,在js事件中通过jQuery获取输入框中内容

2、可以写入form表单中传递数据

$("#userName").val().trim();

之后通过ajax传值到后端进行数据处理

function submit(){

if(!userCheck){

alert("对不起,用户名不可用")

return;

}

var userName =$("#userName").val().trim();

var password =$("#password").val().trim();

if(password.trim()==""||password.length<6){

alert("对不起,密码不符合规则")

return;

}

var repassword =$("#repassword").val().trim();

if(password!=repassword){

alert("对不起,两次密码不一致")

return;

}

var d = {userName:userName,password:password,repassword:repassword};

$.ajax({

url:"/user/register",

type:"post",

data:d,

dataType:"json",

success:function (data) {

if(data.code==-1){

$("#message").text(data.message);

}else{

$("#message").text(data.message+",立即为您跳转页面");

setTimeout(function () {

location.href="/resource/pages/login.jsp";

},2000)

}

}

})


在web层接收前台传递过来的参数,可以用String userName =req.getParameter("userName");属性名的方式获取

也可导入工具包commons-beanutils-1.8.3.jar,用工具接收直接封装入javaBean中,(接收的属性名必须和javaBean中的成员变量名相同)UserBean user = WebUtils.populate(UserBean.class,req);

接着调用service层中UserService中的各种方法得到从数据库获取的值,进行判断登陆、注册等操作

service层中一般直接调用Dao层的方法获取原始数据,可以在本层进行一些简单的业务处理,如数据库long型时间转换日期型,密码加密存入数据库等,加密语句如下,

MessageDigest digest = MessageDigest.getInstance("md5");

//加密之前是字符串,加密之后是字节数组, 如果我们把字节数组存到数据库, 那么查询时的效率极低

byte[] bs = digest.digest(userBean.getPassword().getBytes());

//可以将任意字节数组转成明文的字符串

//01100001  01100010 01100011

//011000 010110 001001 100011

//24  22 9 35

Base64.Encoder encoder = Base64.getEncoder();

String str = encoder.encodeToString(bs);

userBean.setPassword(str);

而在DAO层则直接是根据方法名含义直接获取数据库中的数据


bean中则直接写javaBean类,成员变量名与数据库中的字段名相同,且类型相同

在web层调用获取的数据,经过处理可以放入Session域中,前端jsp页面通过jQuery获取后台的到信息进行展示,如商品展示。可以分页展示,

需要分页的信息,对应的java  Bean中要继承    Basebean。

里面存放总页数当前页等,在调用提取写好封装的paging类中的方法,根据javabean的开始页数和分页大小,还有二次调用传过来的当前页,判断当前页并拼接当前请求所带来的所有参数,再拼写分页当前页,使用字符串拼接成页面,返回一个字符串,在页面中引入这个字符串,则会自动转换成对应标签和信息,

在页面显示的商品详情则只会显示,调用时传递过去的开始页,及页面大小数量的所有商品。


相应的在shopback后台系统中判断用户登录之后才能对商品表的信息进行增删改查等操作,否则则会拦截。

如果用户没有登录,跳到登录页面,可以通过拦截器实现,在拦截器中判断

用户登录成功,则在该用户的session中放置登录标志,否则无

在拦截器中,只有登录才能显示商品详情及操作,或者可以查看一些静态页面,否则就跳到登录页面

//因为要使用session,所以将ServletRequest强转成HttpServletRequest

HttpServletRequest request = (HttpServletRequest) servletRequest;

//有一些静态资源和serlvet请求是不需要拦截的, 放行

//获取请求路径 /项目名/请求地址

String str = request.getRequestURI();

if(str.startsWith("/shopback/resource/")||str.startsWith("/shopback/user/login")){

filterChain.doFilter(request,servletResponse);

return;

}

//获取登陆标志

Object userBack = request.getSession().getAttribute("user");

//判断使用已经登陆

if(userBack==null){

request.getRequestDispatcher("/resource/pages/login.jsp").forward(request,servletResponse);

}else{

filterChain.doFilter(request,servletResponse);

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,548评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,497评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,990评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,618评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,618评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,246评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,819评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,725评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,268评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,356评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,488评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,181评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,862评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,331评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,445评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,897评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,500评论 2 359

推荐阅读更多精彩内容

  • 一、jsp介绍 jsp作用jsp全称java server pages(java服务器页面),本质是一个servl...
    圣贤与无赖阅读 1,251评论 0 14
  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    java日记阅读 3,461评论 0 13
  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 819评论 0 0
  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 948评论 0 0
  • 概述 什么是Struts2的框架Struts2是Struts1的下一代产品,是在 struts1和WebWork的...
    inke阅读 2,263评论 0 50