当前位置: 首页 > news >正文

做网站毕业答辩会问什么网站设计制作平台哪个好

做网站毕业答辩会问什么,网站设计制作平台哪个好,如何进行网络推广市场定位,国内免费建站平台登录校验 会话技术 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束.在一次会话中可以包含多次请求和响应会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话请求间共享数据会话跟踪方案 客户端…登录校验 会话技术 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束.在一次会话中可以包含多次请求和响应会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话请求间共享数据会话跟踪方案 客户端会话跟踪技术:Cookie服务端会话跟踪技术:Session令牌技术 JWT令牌(JSON Web Token) 1. 组成 第一部分Heade头记录令牌类型算法签名等。例如{alg:HS256,type:JWT}第二部分Payload有效载荷携带一些自定义信息默认信息等等。例如{id:1,name:Tom}第三部分Signature签名防止Token被篡改确保安全性。将Header , payload , 并加入指定秘钥 , 通过指定签名算法计算而来 2. 生成/解析 Testpublic void testGenJWT(){HashMapString, Object claims new HashMap();claims.put(id,1);claims.put(name,Tom);String jwt Jwts.builder().signWith(SignatureAlgorithm.HS256, comcrn)//签名算法.setClaims(claims)//自定义内容,载荷.setExpiration(new Date(System.currentTimeMillis() 3600 * 1000))//设置有效期是一个小时.compact();System.out.println(jwt);}Test//解析public void testParseJwt(){Claims claims Jwts.parser().setSigningKey(comcrn).parseClaimsJws(eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiVG9tIiwiaWQiOjEsImV4cCI6MTcxNjk5NTA1Nn0.ArBnzJo8SWv1YbJIddsiH8_ZgAX_IapDf0vENI43tfo).getBody();System.out.println(claims);} 过滤器Filter 一般完成一些通用的操作 , 比如 : 登录校验 , 统一编码处理 , 敏感字符处理等 . 1. 快速入门 1.1. 定义Filter:定义一个类,实现Filter接口,并重写其所有方法 package com.crn.filter;import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException;WebFilter(urlPatterns /*) public class DemoFilter implements Filter {Override //初始化方法,只调用一次public void init(FilterConfig filterConfig) throws ServletException {Filter.super.init(filterConfig);}Override //拦截到请求之后调用,调用多次public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {//放行filterChain.doFilter(servletRequest,servletResponse);}Override//销毁方法,只调用一次public void destroy() {Filter.super.destroy();} }1.2. 配置Filter:Filter配置类上加WebFilter注解,配置资源拦截的路劲.引导类加上ServletComponentScan开启支持Servlet组件 package com.crn;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan;ServletComponentScan SpringBootApplication public class SpringbootTliasYbApplication {public static void main(String[] args) {SpringApplication.run(SpringbootTliasYbApplication.class, args);}}dependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt/artifactIdversion0.9.1/version/dependency 2. 过滤器链 注解配置的Filter,优先级是按照过滤器类名(字符串)的自然排序 3. 登录校验流程 package com.crn.filter;import com.alibaba.fastjson.JSONObject; import com.crn.pojo.Result; import com.crn.utils.JwtUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils;import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;Slf4j WebFilter(urlPatterns /*) public class LoginCheckFilter implements Filter {Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest req (HttpServletRequest) servletRequest;HttpServletResponse resp (HttpServletResponse) servletResponse;//1.获取请求urlString url req.getRequestURL().toString();log.info(url:{}, url);//2.判断URL中是否包含login,如果包含,说明是登录操作,放行if(url.contains(login)){log.info(登录操作,放行);filterChain.doFilter(servletRequest, servletResponse);return;}//3.获取请求头中的令牌String jwt req.getHeader(token);//4.判断令牌是否存在if(!StringUtils.hasLength(jwt)){//令牌不存在,说明用户没有登录,返回错误信息log.info(令牌不存在,请先登录);Result error Result.error(NOT_LOGIN);//手动转换 对象--json ----阿里巴巴fastJSONString jsonString JSONObject.toJSONString(error);resp.getWriter().write(jsonString);return ;}//5.解析token,如果解析失败,返回错误结果try {JwtUtils.parseJWT(jwt);} catch (Exception e) { //解析失败e.printStackTrace();log.info(令牌解析失败);Result error Result.error(NOT_LOGIN);//手动转换 对象--json ----阿里巴巴fastJSONString jsonString JSONObject.toJSONString(error);resp.getWriter().write(jsonString);return ;}//6.放行log.info(令牌合法,放行);filterChain.doFilter(servletRequest, servletResponse);} }拦截器Interceptor spring框架提供的,用来动态拦截控制器方法的执行 1. 快速入门 1.1. 定义拦截器,实现HandlerInterceptor接口,并从写其方法 package com.crn.interceptor;import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;Component public class LoginCheckInterceptor implements HandlerInterceptor {Override //目标资源方法运行前运行,返回为true,代表放行;返回值为false,代表拦截public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle运行了...);return true;}Override //目标资源方法运行后运行public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandle运行了...);}Override //视图渲染完毕后运行,最后运行public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(afterCompletion运行了...);} } 1.2. 定义拦截器 package com.crn.config;import com.crn.interceptor.LoginCheckInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; Configuration public class WebConfig implements WebMvcConfigurer {Autowiredprivate LoginCheckInterceptor loginCheckInterceptor;Override //注册拦截器public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginCheckInterceptor).addPathPatterns(/**);} }2. 详解 3. 登录校验流程 package com.crn.interceptor;import com.alibaba.fastjson.JSONObject; import com.crn.pojo.Result; import com.crn.utils.JwtUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; Slf4j Component public class LoginCheckInterceptor implements HandlerInterceptor {Override //目标资源方法运行前运行,返回为true,代表放行;返回值为false,代表拦截public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception {//1.获取请求urlString url req.getRequestURL().toString();log.info(url:{}, url);//2.判断URL中是否包含login,如果包含,说明是登录操作,放行if(url.contains(login)){log.info(登录操作,放行);return true;}//3.获取请求头中的令牌String jwt req.getHeader(token);//4.判断令牌是否存在if(!StringUtils.hasLength(jwt)){//令牌不存在,说明用户没有登录,返回错误信息log.info(令牌不存在,请先登录);Result error Result.error(NOT_LOGIN);//手动转换 对象--json ----阿里巴巴fastJSONString jsonString JSONObject.toJSONString(error);resp.getWriter().write(jsonString);return false;}//5.解析token,如果解析失败,返回错误结果try {JwtUtils.parseJWT(jwt);} catch (Exception e) { //解析失败e.printStackTrace();log.info(令牌解析失败);Result error Result.error(NOT_LOGIN);//手动转换 对象--json ----阿里巴巴fastJSONString jsonString JSONObject.toJSONString(error);resp.getWriter().write(jsonString);return false;}//6.放行log.info(令牌合法,放行);return true;}Override //目标资源方法运行后运行public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandle运行了...);}Override //视图渲染完毕后运行,最后运行public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(afterCompletion运行了...);} }过滤器与拦截器的区别 接口规范不同:过滤器需要实现Filter接口,二拦截器需要实现HandleInterceptor接口拦截范围不同:过滤器Filer会拦截所有资源,而Interceptor只会拦截进入Spring环境中的资源 异常处理器 package com.crn.exception;import com.crn.pojo.Result; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice;/*** 全局异常处理器*/ RestControllerAdvice public class GlobalExceptionHandler {ExceptionHandler(Exception.class) //捕获所有异常public Result ex(Exception e){e.printStackTrace();return Result.error(对不起,操作失败,请联系管理员);} }
http://www.w-s-a.com/news/632269/

相关文章:

  • 国内外做gif的网站wordpress数据库教程
  • 成都建站平台自己做一个网站需要多少钱
  • 景区旅游网站平台建设公司企业网站源码
  • 免费高清网站推荐喂来苏州网络科技有限公司
  • php做的大型网站有哪些备案博客域名做视频网站会怎么样
  • 去哪网站备案吗昭通网站建设
  • flash企业网站源码建筑材料采购网站
  • 网站可以换虚拟主机吗部门做网站优点
  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些