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

永州网站建设gwtcms网络推广方案范文

永州网站建设gwtcms,网络推广方案范文,2022年度最火关键词,百度指数Springmvc的自动解管理中央转发器&#xff08;DispatcherServlet&#xff09;控制器视图解析器静态资源访问消息转换器格式化静态资源管理中央转发器Xml无需配置<servlet><servlet-name>chapter2</servlet-name><servlet-class>org.springframework.we…

Springmvc的自动解管理

中央转发器(DispatcherServlet

控制器

视图解析器

静态资源访问

消息转换器

格式化

静态资源管理


中央转发器

Xml无需配置

<servlet>
<servlet-name>chapter2</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>chapter2</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

制器

控制器Controller在springboot的注解扫描范围内自动管理。

​​​​​​​视图解析器自动管理

Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans.

ContentNegotiatingViewResolver:组合所有的视图解析器的;

曾经的配置文件无需再配

<bean id="de" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value="*.jsp"></property>
</bean>

源码:

public ContentNegotiatingViewResolver viewResolver(BeanFactory beanFactory) {
    ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
 resolver.setContentNegotiationManager((ContentNegotiationManager)beanFactory.getBean(ContentNegotiationManager.class));
    resolver.setOrder(-2147483648);
return resolver;
}

 

当我们做文件上传的时候我们也会发现multipartResolver自动被配置好的

页面

<form action="/upload" method="post" enctype="multipart/form-data">
<input name="pic" type="file">
<input type="submit">
</form>

Controller

@ResponseBody
@RequestMapping("/upload")
public String upload(@RequestParam("pic")MultipartFile file, HttpServletRequest request){
    String contentType = file.getContentType();
    String fileName = file.getOriginalFilename();
/*System.out.println("fileName-->" + fileName);
    System.out.println("getContentType-->" + contentType);*/
    //String filePath = request.getSession().getServletContext().getRealPath("imgupload/");
    String filePath = "D:/imgup/";
try {
this.uploadFile(file.getBytes(), filePath, fileName);
    } catch (Exception e) {
// TODO: handle exception
    }

return "success";
}


public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception {
    File targetFile = new File(filePath);
if(!targetFile.exists()){
        targetFile.mkdirs();
    }
    FileOutputStream out = new FileOutputStream(filePath+fileName);
    out.write(file);
    out.flush();
    out.close();
}

​​​​​​​消息转换和格式化

格式化转换器的自动注册

​​​​​​​Springboot扩展springmvc

我们可以来通过实现WebMvcConfigurer接口来扩展

​​​​​​​容器中注册视图控制器(请求转发)

@Configuration
public class MyMVCCofnig implements WebMvcConfigurer{
@Override
public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/tx").setViewName("success");
    }

}

​​​​​​​​​​​​​​注册格式化器

用来可以对请求过来的日期格式化的字符串来做定制化。当然通过application.properties配置也可以办到。

@Override
public void addFormatters(FormatterRegistry registry) {
    registry.addFormatter(new Formatter<Date>() {
@Override
public String print(Date date, Locale locale) {
return null;
        }
@Override
public Date parse(String s, Locale locale) throws ParseException {
return new SimpleDateFormat("yyyy-MM-dd").parse(s);
        }
    });
}

​​​​​​​消息转换器扩展fastjson

在pom.xml中引入fastjson

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>

配置消息转换器,添加fastjson

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    FastJsonHttpMessageConverter fc = new FastJsonHttpMessageConverter();
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
    fc.setFastJsonConfig(fastJsonConfig);
    converters.add(fc);
}

在实体类上可以继续控制

public class User
{

private  String username;

private  String password;

private int age;

private int score;

private int gender;

@JSONField(format = "yyyy-MM-dd")
private Date date;

​​​​​​​拦截器注册

创建拦截器

public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("前置拦截");
return true;
    }
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("后置拦截");
    }
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("最终拦截");
    }
}

拦截器注册

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new MyInterceptor())
            .addPathPatterns("/**")
            .excludePathPatterns("/hello2");
}

http://www.dtcms.com/a/451396.html

相关文章:

  • 已注册域名怎么做网站呢响应式网站怎么做mip
  • 帝国手机网站模板九江市建设规划局旧网站
  • 免费自助建站系统东莞公司建网站要多少费用
  • 龙岩网站建设运营怎样用dw做网站主页
  • 微信wap网站连平网站建设
  • 长春模板建站代理让网站百度不到
  • 网站建设语言学什么东莞家用台灯东莞网站建设
  • 正规品牌网站设计wordpress主题academy
  • 做网站要自己租服务器整木全屋定制十大名牌
  • 收录好的网站各大网站开发语言
  • 永嘉移动网站建设公司大二dw网页设计作业成品
  • 怎么制作营销网站wordpress虚拟3d网站
  • 2024免费网站推广建筑工程公司管理制度
  • 国外的哪个网站可以做跳转响应式外贸营销网站
  • 一流的免费网站建设什么是门户网站
  • 多媒体网站开发实战营销型网站建设报价
  • 网站站群建设方案某公司网站源码
  • 泰安建设工程招聘信息网站手机地图软件哪个最好用
  • 网站管理助手4.0 破解网站平台搭建技术
  • 城乡与建设部网站点石家装
  • 天河电子商务网站建设北京网站托管公司
  • 地图销售网站商务网页设计与制作作业
  • 网站建设调研通知iis上部署wordpress
  • 清华紫光网站建设江西智能网站建设哪家好
  • 网站开发平台 eclipse免费网站免费进入在线
  • 王晴儿 网站建设建行手机银行app下载
  • 学做热干面网站网站后台如何修改密码
  • 上海品牌网站建设网站制作公司制作网站
  • 做网站如何获利如何制作一个手机网站源码
  • 自建网站三种模式建设网站的详细步骤