當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
Springmvc拦截所有html和Controller,实现未登录则返回登录页,已登录则可以访问需要登录的页面。
生活随笔
收集整理的這篇文章主要介紹了
Springmvc拦截所有html和Controller,实现未登录则返回登录页,已登录则可以访问需要登录的页面。
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
業(yè)務(wù)邏輯:后端mvc攔截器攔截所有的*.html和*.app請(qǐng)求(controller的后綴,用于識(shí)別controller,也可以換成其它如:userLogin.action),檢查登錄狀態(tài)如果未登錄則跳轉(zhuǎn)到登錄頁(yè)。(順便說(shuō)一下login是登錄而不是登陸)
為什么不用后端來(lái)跳轉(zhuǎn)? 因?yàn)榉祷財(cái)?shù)據(jù)就不能返回頁(yè)面,詳見(jiàn):https://blog.csdn.net/wa_junye/article/details/113866907
//BindingResult和Valid用作jsr303校驗(yàn),可不加。responseMessage為自定義響應(yīng)消息類(lèi),用于響應(yīng)自定義的json數(shù)據(jù) public ResponseMessage userLoginByUsernameAndPassword(@RequestBody @Valid User user,BindingResult bindingResult) throws IOException {//jsr303校驗(yàn)錯(cuò)誤返回jsonif(bindingResult.hasErrors()) {Map<String,Object> map = new HashMap<String,Object>();List<FieldError> errors = bindingResult.getFieldErrors();for(FieldError fieldError : errors) {map.put(fieldError.getField(),fieldError.getDefaultMessage());}responseMessage.setCode("800");responseMessage.setTimestamp(System.currentTimeMillis());return responseMessage.add("errorFields",map);}this.user = userLoginService.selectUserByUsernameAndPwd(user.getUsername(),user.getPassword());if(this.user != null) {session.setAttribute("User",this.user);responseMessage.setCode("200");responseMessage.setMsg("登錄成功");responseMessage.setTimestamp(System.currentTimeMillis());responseMessage.add("url","/staticSource/user/html/datacenter.html");return responseMessage;}responseMessage.setCode("100");responseMessage.setMsg("登陸失敗,請(qǐng)檢查用戶名或密碼是否有誤");responseMessage.setTimestamp(System.currentTimeMillis());return responseMessage;}如果還是可以訪問(wèn)需要登錄的頁(yè)面,請(qǐng)將你的瀏覽器緩存關(guān)閉,或者換一個(gè)瀏覽器來(lái)訪問(wèn)。
總結(jié)
以上是生活随笔為你收集整理的Springmvc拦截所有html和Controller,实现未登录则返回登录页,已登录则可以访问需要登录的页面。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Windows下编译配置Caffe的GP
- 下一篇: 数组扩展