202102-24 解决springmvc使用@PathVariable路径匹配问题 一、问题今天作毕设的时候,在搭建ssm框架的使用使用springmvc的@PathVariable时出现了一个路径匹配的问题,最后花了点时间解决了。代码结构:问题内容:访问url为:按照道理说,我应该到jsp的index页面去。最后的结果确实到了index页面,可是由于该页面引用了几个css和js,报异常找不到。有使用过spring经验的童鞋应该知道使用如下代码解决静态资源的访问。//方法一<mvc:default-servlet-handler/>//方法二<mvc:resourceslocat... 继续阅读 >
202102-23 基于SpringMVC中的路径参数和URL参数实例 1、SpringMVC中的路径参数就是指在路径中添加参数,用于实现伪静态是很好的。2、路径参数实现方式(一个Controller方法)@RequestMapping(value="/page/{name}/{age}",method=RequestMethod.GET)publicStringgetName(ModelMapmap,@PathVariable("name")Stringname,@PathVariable("age")intage){map.addAttribute("name",name);map.addAttribute("age",age);return"name";}3、创建name.jsp文件<%@pagepageEncoding="... 继续阅读 >
202102-02 SpringMVC 通过commons-fileupload实现文件上传功能 配置web.xml<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="https://jakarta.ee/xml/ns/jakartaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaeehttps://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"version="5.0"><!--注册DispatcherServlet--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springf... 继续阅读 >
202101-29 SpringMVC Json自定义序列化和反序列化的操作方法 需求背景需求一:SpringMVC构建的微服务系统,数据库对日期的存储是Long类型的时间戳,前端之前是默认使用Long类型时间,现在前端框架改动,要求后端响应数据时,Long类型的时间自动变成标准时间格式(yyyy-MM-ddHH:mm:ss)。涉及到这个转换的范围挺大,所有的实体表都有创建时间createTime和修改时间updateTime,目前的主要诉求也是针对这两个字段,并且在实体详情数据和列表数据都存在,需要一个统一的方法,对这两个字段进行处... 继续阅读 >
202101-21 SpringMVC和rabbitmq集成的使用案例 1.添加maven依赖<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit</artifactId><version>1.4.5.RELEASE</version></dependency>2.spring主配置文件中加入rabbitMQxml文件的配置<!--rabbitMQ配置--><importresource="/application-mq.xml"/>3.jdbc配置文件中... 继续阅读 >
202101-21 Spring-MVC异步请求之Servlet异步处理 在Servlet3.0的规范中新增了对异步请求的支持,SpringMVC又在此基础上对异步请求提供了方便。异步请求是在处理比较耗时的业务时先将request返回,然后另起线程处理耗时的业务,处理完后在返回给用户。异步请求可以给我们带来很多方便,最直接的用法就是处理耗时的业务,比如,需要查询数据库,需要调用别的服务器来处理等情况下可以先将请求返回给客户端,然后启用新线程处理耗时业务。如果我们合适的扩展可以实现订阅者模式的消息... 继续阅读 >
202101-21 SpringMVC异步处理操作(Callable和DeferredResult) 官方文档中说DeferredResult和Callable都是为了异步生成返回值提供基本的支持。简单来说就是一个请求进来,如果你使用了DeferredResult或者Callable,在没有得到返回数据之前,DispatcherServlet和所有Filter就会退出Servlet容器线程,但响应保持打开状态,一旦返回数据有了,这个DispatcherServlet就会被再次调用并且处理,以异步产生的方式,向请求端返回值。这么做的好处就是请求不会长时间占用服务连接池,提高服务器的吞吐量... 继续阅读 >
202101-14 浅析SpringMVC中的适配器HandlerAdapter DispatcherServlte的initHandlerAdapters方法根据配置文件信息把HandlerAdapter注册到handlerAdapters(List)中。如果在配置文件中没有配置,默认配置会读取DispatcherServlte.properties文件,该文件中配置了三种HandlerAdapter:HttpRequestHandlerAdapter,SimpleControllerHandlerAdapter和AnnotationMethodHandlerAdapter。SimpleControllerHandlerAdapter:继承Controller方式所使用的适配器HttpRequestHandlerAdapter:HT... 继续阅读 >
202101-13 SpringMVC全局异常处理的三种方式 在JavaEE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大。SpringMvc对于异常处理这块提供了支持,通过SpringMvc提供的全局异常处理机制,能够将所有类型的异常处理从各个处理过程解耦出来,这样既保证了相关处理过程的功能较单一,... 继续阅读 >
202012-10 关于springmvc-servlet中的配置小知识详解 我是一个菜鸟,我想像各位大佬们一样发表博客,菜鸟在这里献丑了(不喜勿喷)<!--前缀--><propertyname="prefix"value="/WEB-INF/jsp/"/><!--后缀--><propertyname="suffix"value=".jsp"/>上面两行代码的作用是在控制类中自动帮你加入前缀和后缀例如:这是jsp中的超链接(注册英文单词拼错了哈,不要在乎细节)<ahref="${pageContext.request.contextPath}/registere"rel="externalnofollow">用户注册</a>控制... 继续阅读 >
202012-07 Spring MVC数据处理和乱码问题详解 一、数据处理1.1处理提交数据1.1.1提交的域名称和处理方法的参数名一致提交数据:http://localhost:8080/hello?name=test处理方法:@RequestMapping("/hello")publicStringhello(Stringname){System.out.println(name);return"hello";}后台输出test1.1.2提交的域名称和处理方法的参数名不一致提交数据:http://localhost:8080/hello?username=test处理方法://@RequestParam("username"):username提交的域的名... 继续阅读 >
202012-07 Springmvc模式上传和下载与enctype对比 一般表单数据分为两类<formmethod="post"action="${pageContext.request.contextPath}/upload"enctype="multipart/form-data">enctype带文件上传的表单和不带enctype的传统表单,这两种提交的数据有着不同的样式,并且上传文件只能使用enctype。@OverrideprotectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{req.setCharacterEncoding("utf-8");resp.se... 继续阅读 >
202012-07 SpringMVC中转发与重定向的区别浅析 转发和重定向相同点都是web开发中资源跳转的方式。不同点转发:是服务器内部的跳转,浏览器的地址栏不会发生变化。从一个页面到另一个页面的跳转还是同一个请求,也即是只有一个请求响应。可以通过request域来传递对象。重定向:是浏览器自动发起对跳转目标的请求,浏览器的地址栏会发生变化。从一个页面到另一个页面的跳转是不同的请求,也即是有两个或两个以上的不同的请求的响应。无法通过request域来传递对象。在SpringMVC中实... 继续阅读 >
202012-02 SpringMVC通过模型视图ModelAndView渲染视图的实现 SpringMVC通过模型视图ModelAndView渲染视图大致流程代码样例1.准备工作A.因为文中用到jsp,所以需要引入jsp标准标签库standard.jar和jstl.jar官方下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/本地下载地址:lib_jb51.rarB.添加Tomcat依赖如下:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope>... 继续阅读 >
202011-22 SpringMVC Cron定时器Demo常见问题解决方案 该技术的不适用的场景如果在集群环境下,多台服务器中只希望有一台执行,那Spring自带的这种定时器方式可能不太符合你的需要。但是,如果每台服务器都需要独立执行该定时器任务,且相互之间不存在同步,那么还是可以考虑的SpringMVC定时器本文着重介绍的是SpringMVC配置定时器的方式,而不是SpringBoot配置定时器的方式。注解方式首先,在Clock类上添加@Component,然后,在需要定时执行的方法上面加上@Scheduled,最后... 继续阅读 >
202011-08 springmvc 结合ajax批量新增的实现方法 1.需要注意的问题mvc框架的处理日期问题@ResponseBody响应对象是自定义对象,响应不是json@ResopnseBody响应自定义对象时,日期为是long类型的数结束数据方法的参数,该如何定义?接收多个对象?2.页面代码<%@pagelanguage="java"isELIgnored="false"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>ajax批... 继续阅读 >