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

个人域名网站如何做一个网站推广自己的产品

个人域名网站,如何做一个网站推广自己的产品,手机排行榜2020前十名,没有虚拟主机怎么建网站本文主要介绍springmvc中的拦截器#xff0c;包括拦截器定义和的配置#xff0c;然后演示了一个链式拦截的测试示例#xff0c;最后通过一个登录认证的例子展示了拦截器的应用 拦截定义 定义拦截器#xff0c;实现HandlerInterceptor接口。接口中提供三个方法。 public cla… 本文主要介绍springmvc中的拦截器包括拦截器定义和的配置然后演示了一个链式拦截的测试示例最后通过一个登录认证的例子展示了拦截器的应用 拦截定义 定义拦截器实现HandlerInterceptor接口。接口中提供三个方法。 public class HandlerInterceptor1 implements HandlerInterceptor{ //进入 Handler方法之前执行 //用于身份认证、身份授权 //比如身份认证如果认证通过表示当前用户没有登陆需要此方法拦截不再向下执行 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //return false表示拦截不向下执行 //return true表示放行 return false; } //进入Handler方法之后返回modelAndView之前执行 //应用场景从modelAndView出发将公用的模型数据(比如菜单导航)在这里传到视图也可以在这里统一指定视图 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } //执行Handler完成执行此方法 //应用场景统一异常处理统一日志处理 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } } 可以从名称和参数看出各个接口的顺序和作用: public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception 参数最少只有三个进入 Handler方法之前执行用于身份认证、身份授权。比如身份认证如果认证通过表示当前用户没有登陆需要此方法拦截不再向下执行public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception 多了一个modelAndView参数进入Handler方法之后返回modelAndView之前执行应用场景从modelAndView出发将公用的模型数据(比如菜单导航)在这里传到视图也可以在这里统一指定视图public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception 多了一个Exception的类型的参数执行Handler完成执行此方法应用场景统一异常处理统一日志处理拦截器配置 针对HandlerMapping配置 springmvc拦截器针对HandlerMapping进行拦截设置如果在某个HandlerMapping中配置拦截经过该HandlerMapping映射成功的handler最终使用该拦截器。 beanclassorg.springframework.web.servlet.handler.BeanNameUrlHandlerMappingproperty nameinterceptors list ref beanhandlerInterceptor1/ ref beanhandlerInterceptor2/ /list /property /bean bean idhandlerInterceptor1 classspringmvc.intercapter.HandlerInterceptor1/ bean idhandlerInterceptor2 classspringmvc.intercapter.HandlerInterceptor2/ 一般不推荐使用。 类似全局的拦截器 springmvc配置类似全局的拦截器springmvc框架将配置的类似全局的拦截器注入到每个HandlerMapping中。 !--拦截器 -- mvc:interceptors!--多个拦截器,顺序执行 --mvc:interceptor!-- /**表示所有url包括子url路径 -- mvc:mapping path/**/ bean classcom.iot.learnssm.firstssm.interceptor.HandlerInterceptor1/bean /mvc:interceptor mvc:interceptor mvc:mapping path/**/ bean classcom.iot.learnssm.firstssm.interceptor.HandlerInterceptor2/bean /mvc:interceptor /mvc:interceptors 拦截测试 测试多个拦截器各个方法执行时机 访问/items/queryItems.action 1.两个拦截器都放行 DEBUG [http-apr-8080-exec-1] - DispatcherServlet with name springmvc processing GET request for [/ssm1/items/queryItems.action] DEBUG [http-apr-8080-exec-1] - Looking up handler method for path /items/queryItems.action DEBUG [http-apr-8080-exec-1] - Returning handler method [public org.springframework.web.servlet.ModelAndView com.iot.learnssm.firstssm.controller.ItemsController.queryItems(javax.servlet.http.HttpServletRequest,com.iot.learnssm.firstssm.po.ItemsQueryVo) throws java.lang.Exception] DEBUG [http-apr-8080-exec-1] - Returning cached instance of singleton bean itemsController DEBUG [http-apr-8080-exec-1] - Last-Modified value for [/ssm1/items/queryItems.action] is: -1 HandlerInterceptor1...preHandle HandlerInterceptor2...preHandle DEBUG [http-apr-8080-exec-1] - Fetching JDBC Connection from DataSource DEBUG [http-apr-8080-exec-1] - Registering transaction synchronization for JDBC Connection DEBUG [http-apr-8080-exec-1] - Returning JDBC Connection to DataSource HandlerInterceptor2...postHandle HandlerInterceptor1...postHandle DEBUG [http-apr-8080-exec-1] - Rendering view [org.springframework.web.servlet.view.JstlView: name items/itemsList; URL [/WEB-INF/jsp/items/itemsList.jsp]] in DispatcherServlet with name springmvc DEBUG [http-apr-8080-exec-1] - Added model object itemtypes of type [java.util.HashMap] to request in view with name items/itemsList DEBUG [http-apr-8080-exec-1] - Added model object itemsQueryVo of type [com.iot.learnssm.firstssm.po.ItemsQueryVo] to request in view with name items/itemsList DEBUG [http-apr-8080-exec-1] - Added model object org.springframework.validation.BindingResult.itemsQueryVo of type [org.springframework.validation.BeanPropertyBindingResult] to request in view with name items/itemsList DEBUG [http-apr-8080-exec-1] - Added model object itemsList of type [java.util.ArrayList] to request in view with name items/itemsList DEBUG [http-apr-8080-exec-1] - Forwarding to resource [/WEB-INF/jsp/items/itemsList.jsp] in InternalResourceView items/itemsList HandlerInterceptor2...afterCompletion HandlerInterceptor1...afterCompletion DEBUG [http-apr-8080-exec-1] - Successfully completed request 总结preHandle方法按顺序执行postHandle和afterCompletion按拦截器配置的逆向顺序执行。 2.拦截器1放行拦截器2不放行 DEBUG [http-apr-8080-exec-8] - DispatcherServlet with name springmvc processing GET request for [/ssm1/items/queryItems.action] DEBUG [http-apr-8080-exec-8] - Looking up handler method for path /items/queryItems.action DEBUG [http-apr-8080-exec-8] - Returning handler method [public org.springframework.web.servlet.ModelAndView com.iot.learnssm.firstssm.controller.ItemsController.queryItems(javax.servlet.http.HttpServletRequest,com.iot.learnssm.firstssm.po.ItemsQueryVo) throws java.lang.Exception] DEBUG [http-apr-8080-exec-8] - Returning cached instance of singleton bean itemsController DEBUG [http-apr-8080-exec-8] - Last-Modified value for [/ssm1/items/queryItems.action] is: -1 HandlerInterceptor1...preHandle HandlerInterceptor2...preHandle HandlerInterceptor1...afterCompletion DEBUG [http-apr-8080-exec-8] - Successfully completed request总结 拦截器1放行拦截器2 preHandle才会执行。拦截器2 preHandle不放行拦截器2 postHandle和afterCompletion不会执行。只要有一个拦截器不放行postHandle不会执行。3.两个拦截器都不放 DEBUG [http-apr-8080-exec-9] - DispatcherServlet with name springmvc processing GET request for [/ssm1/items/queryItems.action] DEBUG [http-apr-8080-exec-9] - Looking up handler method for path /items/queryItems.action DEBUG [http-apr-8080-exec-9] - Returning handler method [public org.springframework.web.servlet.ModelAndView com.iot.learnssm.firstssm.controller.ItemsController.queryItems(javax.servlet.http.HttpServletRequest,com.iot.learnssm.firstssm.po.ItemsQueryVo) throws java.lang.Exception] DEBUG [http-apr-8080-exec-9] - Returning cached instance of singleton bean itemsController DEBUG [http-apr-8080-exec-9] - Last-Modified value for [/ssm1/items/queryItems.action] is: -1 HandlerInterceptor1...preHandle DEBUG [http-apr-8080-exec-9] - Successfully completed request总结 拦截器1 preHandle不放行postHandle和afterCompletion不会执行。拦截器1 preHandle不放行拦截器2不执行。4.拦截器1不放行拦截器2放行 DEBUG [http-apr-8080-exec-8] - DispatcherServlet with name springmvc processing GET request for [/ssm1/items/queryItems.action] DEBUG [http-apr-8080-exec-8] - Looking up handler method for path /items/queryItems.action DEBUG [http-apr-8080-exec-8] - Returning handler method [public org.springframework.web.servlet.ModelAndView com.iot.learnssm.firstssm.controller.ItemsController.queryItems(javax.servlet.http.HttpServletRequest,com.iot.learnssm.firstssm.po.ItemsQueryVo) throws java.lang.Exception] DEBUG [http-apr-8080-exec-8] - Returning cached instance of singleton bean itemsController DEBUG [http-apr-8080-exec-8] - Last-Modified value for [/ssm1/items/queryItems.action] is: -1 HandlerInterceptor1...preHandle DEBUG [http-apr-8080-exec-8] - Successfully completed request和两个拦截器都不行的结果一致因为拦截器1先执行没放行 小结根据测试结果对拦截器应用。 比如统一日志处理拦截器需要该拦截器preHandle一定要放行且将它放在拦截器链接中第一个位置。 比如登陆认证拦截器放在拦截器链接中第一个位置。权限校验拦截器放在登陆认证拦截器之后。因为登陆通过后才校验权限当然登录认证拦截器要放在统一日志处理拦截器后面 拦截器应用(实现登陆认证) 需求 1.用户请求url2.拦截器进行拦截校验 如果请求的url是公开地址无需登陆即可访问的url让放行如果用户session 不存在跳转到登陆页面如果用户session存在放行继续操作。登陆controller方法 Controller public class LoginController { // 登陆 RequestMapping(/login) public String login(HttpSession session, String username, String password) throws Exception { // 调用service进行用户身份验证 // ... // 在session中保存用户身份信息 session.setAttribute(username, username); // 重定向到商品列表页面 return redirect:/items/queryItems.action; } // 退出 RequestMapping(/logout) public String logout(HttpSession session) throws Exception { // 清除session session.invalidate(); // 重定向到商品列表页面 return redirect:/items/queryItems.action; } } 登陆认证拦截实现 代码实现 /*** Created by brian on 2016/3/8.* 登陆认证拦截器*/public class LoginInterceptor implements HandlerInterceptor { //进入 Handler方法之前执行 //用于身份认证、身份授权 //比如身份认证如果认证通过表示当前用户没有登陆需要此方法拦截不再向下执行 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //获取请求的url String url request.getRequestURI(); //判断url是否是公开 地址实际使用时将公开 地址配置配置文件中 //这里公开地址是登陆提交的地址 if(url.indexOf(login.action)0){ //如果进行登陆提交放行 return true; } //判断session HttpSession session request.getSession(); //从session中取出用户身份信息 String username (String) session.getAttribute(username); if(username ! null){ //身份存在放行 return true; } //执行这里表示用户身份需要认证跳转登陆页面 request.getRequestDispatcher(/WEB-INF/jsp/login.jsp).forward(request, response); //return false表示拦截不向下执行 //return true表示放行 return false; } //进入Handler方法之后返回modelAndView之前执行 //应用场景从modelAndView出发将公用的模型数据(比如菜单导航)在这里传到视图也可以在这里统一指定视图 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println(LoginInterceptor...postHandle); } //执行Handler完成执行此方法 //应用场景统一异常处理统一日志处理 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println(LoginInterceptor...afterCompletion); } } 拦截器配置 !--拦截器 -- mvc:interceptors!--多个拦截器,顺序执行 --!-- 登陆认证拦截器 --mvc:interceptor mvc:mapping path/**/ bean classcom.iot.learnssm.firstssm.interceptor.LoginInterceptor/bean /mvc:interceptor ...省略  转自http://brianway.github.io/2016/03/30/springmvc-learn-20-interceptor/ 转载于:https://www.cnblogs.com/thinkingandworkinghard/p/8124295.html
http://www.zqtcl.cn/news/604789/

相关文章:

  • 如何利用源码做网站外贸网站制作推广
  • 国内做网站哪家公司好免费查找资料的网站
  • 自己做的网站百度搜不到搭建网站seo
  • 奇墙网站建设高端网站建设公司联系电话
  • 宁波那家公司做网站好中企动力科技股份有限公司招聘
  • 水果网站推广网站首页静态好还是动态好
  • iis网站属性小程序源码无需服务器
  • 景区网站建设材料代运营有哪些套路坑
  • 六安电商网站建设哪家好有关做美食的网站
  • 卸载wordpress插件网店seo关键词
  • 金山网站制作赤城seo网站优化排名
  • 提供坪山网站建设深圳商城网站哪家做的好
  • 有什么网站可以帮人做模具吗热搜榜百度一下你就知道
  • 深圳网站优化技巧邹城住房城乡建设部网站
  • 小型企业网站建站桂林市中考信息网官网
  • 雏鸟app网站推广做网站用宋体有版权问题吗
  • 建立网站数据库开公司流程及费用2022最新
  • 外贸谷歌网站推广wordpress调用上传图片
  • 360提示危险网站原因威海 网站开发
  • 赣州本地网站网站怎么写
  • 物业公司网站设计湛江做网站软件
  • 做招聘求职网站wordpress启用插件出错
  • 珠海网站运营网站个人备案流程
  • 网站开发用什么图片格式最好网络营销名词解释是什么
  • 做柜子网站老电脑做网站服务器
  • 域名购买网站网店装修是什么
  • wordpress 网站备份为什么企业要建设自己的企业文化
  • 想做一个部门的网站怎么做潍坊网站建设价
  • 网站建设公司的公司哪家好什么行业必须做网站
  • 电子商务网站前台设计wordpress 上传文件大小