0

0

SpringMVC基础配置的详细介绍

不言

不言

发布时间:2018-09-30 16:04:53

|

2328人浏览过

|

来源于博客园

转载

本篇文章给大家带来的内容是关于springmvc基础配置的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

今天我们来说说SpringMVC的基础配置。目前越来越多的主流框架都支持注解,同时我们无敌的Spring也支持基于注解的"零配置"。

注解相比XML的优势:它可以充分利用Java的反射机制获取类中的结构信息,这些信息可以有效减少配置的工作,注释和Java代码位于一个文件中,更加利于维护。

注意:必须要在Spring2.5版本之后才可以使用注解方式。

注解方式将Bean的定义信息和Bean的实现类结合在一起,Spring提供的注解有。

@Component:声明一个普通的Bean类

@Repository:声明一个持久层Dao类

@Service:声明一个业务层类

@Controller:声明一个控制器类

这4个注解相信小伙伴们已经非常的熟悉了,废话就少说了。我们使用注解千万不要忘了在类中扫描!!!

@RequestMapping(非常核心的一个注解),这个注解是用来指定控制器的请求URL。

在控制器的类定义:提供初步的映射信息,为该类下所有请求方法添加一个前缀。

在控制器类中的方法定义:提供进一步的映射信息,提供方法的请求路径

DispacherServlet截获请求后,就通过 控制器上的@RequestMapping提供的映射信息确认请求所对应的处理方法。

@Controller
@RequestMapping("user")
public class UserController {
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}

这个时候我们请求的路径是http://localhost:8080/SpringMvcDemo2/user/hello

@RequestMapping除了映射请求URL请求,还可以使用请求方法,请求参数和请求头的请求,注解中有几个参数:

1)value:表示请求的URL

2)method:表示请求的方式(GET/POST)

3)params:表示请求的参数

4)heads:请求头

他们之间的是与的关系,联合使用多个请求可以让请求更加的精确化。

@RequestMapping(value="hello2",method=RequestMethod.POST,params={"username","userpass"},headers="contentType=text/*") 
   public String hello2(){
           return "hello";
    }

这段代码表示,请求的地址是hello请求方式为Post必须带username,userpass两个参数,请求头contentType必须是text/开头。我们可以写两个URL一样的方法,请求方式一个POST另一个GET当时会严格根据设置进行调用

思高网络商城CycooShop
思高网络商城CycooShop

主要模块:首页商品推荐 /顾客留言发布 /商品分类浏览 /按商品分类、关键字搜索商品 /商品购物车 人信息中心 /显示商品详细介绍以及多图片显示功能 /商品类别管理有分大类中类的类别设定商品搜索类别设定 /商品管理有临时关闭不在线功能 /订单管理 /支付类型管理模块 留言管理 /后台权限分级管理 /密码修改 /新闻管理 /网站配置管理 /滚动广告管理v1.58更新:1、增强支付接口设置。2、内置支

下载

@RequestMapping同时还支持Ant风格的URL,在Ant中支持3种通配符。

?:表示配置一个字符。

*:匹配任意字符

**:匹配多层路径

在SpringMVC中对参数的处理:

@pathVariable:URL模板方式

  用来映射URL中的占位符,映射的变量名必须和占位符中的名称一致,像这种我们的请求地址就会时http://localhost:8080/SpringMvcDemo2/user/testPathVariable/Miya,这个miya就是我们传过去的参数,在传统的URL中testPathVariable?username=miya但是这种不利于百度的收录。

@RequestMapping("/testPathVariable/{username}")
    public String hello3(@PathVariable("username")String username){
        System.out.println("username :  " + username);        
        return "hello";
    }

@RequestParam:获取请求参数,如果请求参数名字和类型的名字一致我们可以省略吊这个注解,一样可以接受到值。

@RequestMapping("/textParam")
    public String hello4(@RequestParam("username")String username,@RequestParam("userpass")String userpass){
        System.out.println("userpass :  " + userpass);        
        return "hello";
    }

@RequestHeader:获取请求头的参数

  在这里有三个参数,value:指定参数的名称,required:指定参数是否为必填,defualtValue:指定参数的默认值。

@RequestMapping("/testRequestHeader")
    public String hello5(@RequestHeader("Accept-Language") String language){
        System.out.println("language=" + language);       
        return "hello";
    }

@CookieValue:用来获取客户端Cookie的信息。

@RequestMapping("/testCookieValue")    
public String hello6(@CookieValue("JSESSIONID")String sessionid){
        System.out.println("sessionid=" + sessionid);        
        return "hello";
    }

SpringMVC可以使用ServletAPI作为请求方法的参数

@RequestMapping("/testServletAPI")    
public String hello7(HttpServletRequest request,HttpServletResponse response,HttpSession session){        
//我们可以在这里使用
        return "hello";
    }

SpringMVC提供了以下几种处理模型数据的方式。

1)ModelAndView:将处理方法的返回类型设置为ModelAndView方法体可通过该模型对象添加模型数据。既包含视图,也包含模型信息

@RequestMapping("/testModelAndView")
    public ModelAndView hello8(){
        ModelAndView modelAndView = new ModelAndView("hello");
        //添加单个值
        modelAndView.addObject("h","Hello Spring MVC");        
        return modelAndView;
    }

2)Map及形参:当形参为Map,Model,ModelMap时,处理方法返回时,Map中的数据会自动添加到模型中。 

  Spring MVC在内部使用了一个Model接口存储数据的数据,在调用方法前会创建一个隐含的模型对象作为数据模型的存储容器。如果传入的参数为Map,Model,ModelMap时,SpringMVC会自动保存到容器中

@RequestMapping("/testMap")    
public String hello9(Map map){
        map.put("mapdata", "map data");       
        return "hello";
    }

3)@SessionAttributes:将这个模型中的某个属性存储到Session中,以便多个请求之间共享这个属性,只能用来修饰类。在里面的方法如果参数容器中如map里卖弄保存一个与定义的属性名字相同会保存到容器中共享

4)@ModelAttribute:方法形参标记该注解后,形参对象就会放到模型中。

  SpringMVC在调用方法之前会逐个调用方法上标注了这个注解的方法。将@ModelAttribute中的属性保存到map中,可在执行表单提交生成对象之前,替换执行方法名相同的参数。

@ModelAttribute
public User getUser(){
    User user = new User();
    System.out.println("调用 getUser 方法");
    //默认保存名字为类名首字母小写的user对象到Request中
    return user;
}
@ModelAttribute
public void getUserById(Integer id,Map map){
    User myuser = new User();
    map.put("myuser", myuser);
    //手动指定user对象的名称,到Request中
    System.out.println("调用 getUser 方法");
}

由@SessionAttributs会引发一个很容易轻视的错误当类使用@SessionAttributes修饰,而方法中使用了和SessionAttributes修饰同名的映射参数,确没有添加@ModelAttribute修饰时,则会报错。

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

832

2023.06.15

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

737

2023.07.05

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

734

2023.07.31

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

397

2023.08.01

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

398

2023.08.02

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

446

2023.08.02

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

430

2023.08.02

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

16925

2023.08.03

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

36

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号