模块网站需要多少钱苏州建设银行官方网站

web/2025/10/7 21:31:51/文章来源:
模块网站需要多少钱,苏州建设银行官方网站,微信官网站,网站开发的英文参考文献目录 1.拦截器1.1.什么是拦截器#xff1f;1.2 拦截器的API1.3 拦截器的执行顺序1.5 自定义拦截器1.5 登录拦截器案例 2.文件上传2.1 添加依赖2.2 配置文件上传解析器2.3 编写控制器2.4 编写jsp页面2.5 注意事项 3.全局异常处理器3.1 异常处理思路3.2 创建异常处理器3.3 编写异… 目录 1.拦截器1.1.什么是拦截器1.2 拦截器的API1.3 拦截器的执行顺序1.5 自定义拦截器1.5 登录拦截器案例 2.文件上传2.1 添加依赖2.2 配置文件上传解析器2.3 编写控制器2.4 编写jsp页面2.5 注意事项 3.全局异常处理器3.1 异常处理思路3.2 创建异常处理器3.3 编写异常类3.4 配置异常处理器 1.拦截器 1.1.什么是拦截器 ​ Spring MVC中的拦截器Interceptor类似于Servlet中的过滤器Filter它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、判断用户是否登录等。 ​ 拦截器依赖于web框架在实现上基于Java的反射机制属于面向切面编程AOP的一种运用。 过滤器与拦截器的区别拦截器是AOP思想的具体应用。 过滤器 servlet规范中的一部分任何java web工程都可以使用 在url-pattern中配置了/*之后可以对所有要访问的资源进行拦截 拦截器 拦截器是SpringMVC框架自己的只有使用了SpringMVC框架的工程才能使用 拦截器只会拦截访问的控制器方法 如果访问的是jsp/html/css/image/js是不会进行拦截的 1.2 拦截器的API 定义拦截器需要实现HandlerInterceptor接口该接口中有三个方法 preHandle() 控制层执行器方法前的拦截器该方法时在控制层执行器方法前调用当该方法返回结果为true则继续调用下一个拦截器如果已经是最后一个拦截器则调用控制层中的执行器方法当该方法返回结果为false则不会继续执行控制层执行器中的方法 postHandle() 控制层方法返回时拦截器该方法是控制层执行器方法执行之后由DispatcherServlet在将结果响应给浏览器前调用的方法 afterCompletion() 控制层方法结束后的拦截器该方法在请求业务处理执行完全结束之后由DispatcherServlet调用执行 1.3 拦截器的执行顺序 单个拦截器的执行顺序 preHandle() → postHandle() → afterCompletion() 多个拦截器的执行顺序 先按顺序执行所有拦截器的 preHandle方法 如果任何一个拦截器preHandle方法返回false。直接跳出不执行目标方法 如果当前拦截器prehandler返回为true。则执行下一个拦截器的preHandle方法如果当前拦截器返回为false。直接倒序执行所有已经执行了的拦截器的 afterCompletion方法 所有拦截器都返回True。执行目标方法 倒序执行所有拦截器的postHandle方法。 前面的步骤有任何异常都会直接倒序触发 afterCompletion 页面成功渲染完成以后也会倒序触发 afterCompletion 1.5 自定义拦截器 我们要想自定义拦截器 要求必须实现HandlerInterceptor 接口。 创建拦截器 配置web.xml 和 springmvc-servlet.xml 文件 package com.by.interceptor;import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class CustomHandlerInterceptor implements HandlerInterceptor {/*** 在控制器方法调用前执行* 返回值为是否中断* true表示继续执行下一个拦截器或处理器* false则会中断后续的所有操作所以我们需要使用response来继续响应后续请求*/Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object object) throws Exception {System.out.println(HandlerInterceptor preHandle ....);return true;}/*** 在控制器方法调用后解析视图前调用我们可以对视图和模型做进一步渲染或修改* 可在modelAndView中加入数据比如当前时间*/Overridepublic void postHandle(HttpServletRequest request,HttpServletResponse response, Object object, ModelAndView modelAndView) throws Exception {System.out.println(HandlerInterceptor postHandle ....);}/*** 整个请求完成即视图渲染结束后调用这个时候可以做些资源清理工作或日志记录*/Overridepublic void afterCompletion(HttpServletRequest request,HttpServletResponse response,Object object, Exception e) throws Exception {System.out.println(HandlerInterceptor afterCompletion ....);} }配置拦截器 !--配置拦截器 --mvc:interceptorsmvc:interceptor!-- 匹配的是url路径 --mvc:mapping path/**/mvc:mappingbean classcom.by.interceptor.CustomHandlerInterceptor/bean/mvc:interceptor/mvc:interceptors测试 编写controller Controller RequestMapping(/account) public class AccountController {RequestMapping(/findAccount12)public String findAccount12(Model model) {model.addAttribute(msg, 欢迎你 springmvc);System.out.println(controller的方法执行了......);return success;} }1.5 登录拦截器案例 创建拦截器 package com.by.interceptor;import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class LoginInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object object) throws Exception {String user (String) request.getSession().getAttribute(user_session);if (user ! null) {//已经登录继续执行System.out.println(获得用户信息user);return true;} else {//未登录跳转到登录页面response.sendRedirect(request.getContextPath() /login.jsp);return false;}} }配置拦截器 mvc:interceptorsmvc:interceptor!-- 匹配的是url路径 --mvc:mapping path/**/mvc:mappingbean classcom.by.interceptor.LoginInterceptor/bean/mvc:interceptor/mvc:interceptors测试 编写controller Controller RequestMapping(/account) public class AccountController {RequestMapping(/findAccount13)public String findAccount13(Model model) {model.addAttribute(msg, 欢迎你 springmvc);System.out.println(controller的方法执行了......);return success;} }在index.jsp里面定义超链接 %session.setAttribute(user_session,User{name:张二狗,age:18}); % a href/account/findAccount13登录拦截器/a2.文件上传 2.1 添加依赖 !--文件上传-- dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.3.1/version /dependency2.2 配置文件上传解析器 !--配置文件上传解析器-- bean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolverproperty namemaxUploadSize value5242880 /property namedefaultEncoding valueUTF-8 / /bean2.3 编写控制器 编写controller Controller RequestMapping(/account) public class AccountController {RequestMapping(path/upload)public String upload(HttpServletRequest request, MultipartFile upload,Model model) throws IOException {System.out.println(springmvc方式的文件上传);//获取要上传的文件目录String path request.getSession().getServletContext().getRealPath(/uploads);System.out.println(path:path);//根据文件上传的目录创建File对象如果不存在则创建1个File对象File file new File(path);if(!file.exists()){//创建一个file对象file.mkdirs();}//获取文件上传名称String filename upload.getOriginalFilename();//完成文件上传upload.transferTo(new File(path,filename));model.addAttribute(msg, 欢迎你 springmvc);return success;} }2.4 编写jsp页面 form action/account/upload methodpost enctypemultipart/form-data文件: input typefile nameupload/inputinput typesubmit value提交/form2.5 注意事项 form表单必须加上enctypemultipart/form-datamethod属性取值必须是Post提供一个文件选择域input typefile/ 3.全局异常处理器 即使对大部分情况都做了预判和异常处理但程序有时会因为莫名奇妙的原因发生错误并且错误信息肯定会抛在浏览器页面上这样用户观感特别不好所以需要进行全局异常处理。 3.1 异常处理思路 系统的dao、service、controller出现都通过throws Exception向上抛出最后由springmvc前端控制器交由异常处理器进行异常处理如下图 3.2 创建异常处理器 Component public class CustomExceptionResolver implements HandlerExceptionResolver {Overridepublic ModelAndView resolveException(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex) {ModelAndView modelAndView new ModelAndView();modelAndView.addObject(message, ex.getMessage());modelAndView.setViewName(error);return modelAndView;} }3.3 编写异常类 Controller RequestMapping(/account) public class AccountController {RequestMapping(/findAccount14)public String findAccount14(Model model) {model.addAttribute(msg, 欢迎你 springmvc);//模拟异常信息int i 10/0;return success;} }3.4 配置异常处理器 bean classcom.by.exception.CustomExceptionResolver /bean

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片渐隐 网站头部flash建设隔热网站

一 Button 按钮 Button是按钮组件,通常用于响应用户的点击操作,可以加子组件 Button(我是button)Button(){Text(我是button)}type 按钮类型 Button有三种可选类型,分别为胶囊类型(Capsule)、圆形按钮(Circle&#xf…

无锡seo报价seo交流博客

网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线和滚动条的宽) 网页可见区域高:document.body.offsetHeight(包括边线的宽) 网页正文全…

餐饮品牌设计网站wordpress 免备案空间

摘 要 随着我国经济的飞速发展,促使各种能源使用入不敷出,尤其是最主要的能源,煤炭石油资源不断消耗与短缺,因此人类寻找其他替代能源的脚步正在加快。而太阳能则具有无污染﹑可再生﹑储量大等优点,且分布范围广&…

查网站服务器ip 被k简单asp网站源码

套餐管理 1 任务2 新增套餐2.1 需求分析和设计页面原型和业务规则接口设计setmeal和setmeal_dish表设计 2.2 代码开发2.2.1 根据分类id查询菜品DishControllerDishServiceDishServiceImplDishMapperDishMapper.xml 2.2.2 新增套餐接口SetmealControllerSetmealServiceSetmealSe…

淮安市广德育建设网站工友洗手粉网站建设中

声明:只是记录,初心是为了让页面更好看,会有错误,我并不是一个会记录的人,所以有点杂乱无章的感觉,我先花点时间把视频迅速过掉,再来整理这些杂乱无章的内容 计划是一天更新一点 待做的东西 完成博客记录把完成后的博客记录拆成单…

酒店网站建设必要性wordpress伪静态作用

一、贪心算法 贪心算法是一种解决优化问题的算法设计方法,其核心思想是在每一步选择当前状态下的最优解,从而希望最终达到全局最优解。下面将介绍贪心算法的原理、实现步骤,并提供C#和Java的实现示例。 1.1 原理: 贪心算法的原…

万峰科技著.asp.net网站开发四酷全书电子工业出版社做网站卖东西送上门

番茄钟番茄工作法是简单易行的时间管理方法。使用番茄工作法,选择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事。直到番茄时钟响起,然后进行短暂休息一下(5分钟就行&…

有没有必要给企业做网站顺义哪有做网站厂家

Unable to start embedded Tomcat(已解决) 一、背景介绍二、原因分析2.1 网络上整理2.2 其他原因 三、解决方案 一、背景介绍 spring boot(v2.5.14) maven idea 启动项目 之前项目一直启动的好好的,都能正常运行。重启的时候突然就不能启…

网站建设的多少钱建网站盈利的几种方式

摘要:arduino环境下对esp32蓝牙编程时会遇到BLEUUID does not name a type错误,本文介绍解决方法。 硬件设备是安信可ESP32-S模组。 错误发生在代码最开始的地方,include了一个蓝牙设备头文件,然后定义了UUID,注意看&a…

医院网站可以自己做吗化工网站模板

Problem - B - Codeforces 题目大意:给物品数量 n n n,体积为 v ( 0 ≤ v ≤ 1 e 9 ) v_{(0 \le v \le 1e9)} v(0≤v≤1e9)​,第一行读入 n , v n, v n,v,之后 n n n行,读入 n n n个物品,之后每行依次是体…

2018年网站优化怎么做兰州seo网站排名

前端学习笔记 7:小兔鲜 准备工作 创建项目 创建项目: npm init vuelatest相关选项如下: 在src目录下添加以下目录: 别名路径联想 默认情况下在 VSCode 中输入import xxx from ...时不会启用路径联想功能,要启用需…

成都网站改版公司优设网app安卓下载

文章目录 一、文件流打开方式参数1、文件流打开方式参数2、文件指针3、组合打开方式4、文件打开失败 一、文件流打开方式参数 1、文件流打开方式参数 文件流打开方式参数 : ios::in : 以只读方式打开文件 ;ios::out : 以只写方式打开文件 , 默认打开方式 , 如果文件已存在则清…

小企业如何优化网站建设潍坊网站建设公司

R语言实验报告R语言实验报告R语言判别分析实验报告班级:应数1201学号姓名:麦琼辉时间:2016年11月28号1 实验目的及要求1) 了解判别分析的目的和意义;2) 熟悉R语言中有关判别分析的算法基础。2 实验设备及要求个人计算机一台&#…

好上手的做海报网站网站分站开发计划书

【OpenCV 例程200篇】87. 频率域钝化掩蔽 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 4.2 频率域钝化掩蔽 简单地,从原始图像中减去一幅平滑处理的钝化图像,也可以实…

公司网站开发的工作内容怎么做网站黑链

c返回指针时候注意提防这对函数式编程并不会造成太大的影响,这真棒。 这是关于某些实践的警告,您很可能会将其应用于您的代码,而这是完全错误的! 。 高阶函数对于函数式编程是必不可少的,因此,谈论它们将帮…

如何搜索网站的内容西安seo网站设计公司

很好的一道模拟题,做起来很舒服 做模拟题重要的还是心态,能静得下心读题 思路: 读完题后,很直观的一个思路就是暴力,但2e5的O(n^2)过不去,怎么优化?? 就是转换 sum ∑a[i] (sum - S0) % m 0 结果 v S0 % m 可以这么转换 sum % m S0 % m 令sum % m k 那么就是…

浙江住房城乡建设厅网站用wordpress做淘宝客

塑料检查井配套开发的注塑成型井盖、井筒、井座——城市基础设施的新选择 随着城市化进程的加快,城市基础设施建设的品质与效率日益受到重视。在这个背景下,塑料检查井及其配套开发的注塑成型井盖、井筒、井座以其独特的优势,正在逐渐取代传…

免费手机网站空间软件开发各阶段时间比例

5.1 加载一个可执行文件 默认情况下IDA Pro的反汇编代码中不包含PE头或资源节,可以手动指定加载。 5.2 IDA Pro接口 5.2.1 反汇编窗口模式 二进制模式/图形模式: 图形模式:红色表示一个条件跳转没有被采用,绿色表示这个条件跳转被…

名师工作室网站建设舟山 做企业网站

什么是线程模型: Java字节码运行在JVM中,JVM运行在各个操作系统上。所以当JVM想要进行线程创建回收这种操作时,势必需要调用操作系统的相关接口。也就是说,JVM线程与操作系统线程之间存在着某种映射关系,这两种不同维…

微信推送在哪个网站做静安区建设工程招标投标管理部门网站

定义 责任链模式是一种行为型设计模式,用于在对象间建立一条处理请求的链。它允许多个对象有机会处理请求,从而减少请求的发送者和接收者之间的耦合。在责任链模式中,每个接收者包含对另一个接收者的引用,形成一条链。如果一个对…