SpringMVC基础配置的详细介绍
本篇文章给大家带来的内容是关于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当时会严格根据设置进行调用
@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<String,Object> 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<String,Object> map){ User myuser = new User(); map.put("myuser", myuser); //手动指定user对象的名称,到Request中 System.out.println("调用 getUser 方法"); }
由@SessionAttributs会引发一个很容易轻视的错误当类使用@SessionAttributes修饰,而方法中使用了和SessionAttributes修饰同名的映射参数,确没有添加@ModelAttribute修饰时,则会报错。
Atas ialah kandungan terperinci SpringMVC基础配置的详细介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



SpringBoot dan SpringMVC adalah kedua-dua rangka kerja yang biasa digunakan dalam pembangunan Java, tetapi terdapat beberapa perbezaan yang jelas antara mereka. Artikel ini akan meneroka ciri dan penggunaan kedua-dua rangka kerja ini dan membandingkan perbezaannya. Mula-mula, mari belajar tentang SpringBoot. SpringBoot telah dibangunkan oleh pasukan Pivotal untuk memudahkan penciptaan dan penggunaan aplikasi berdasarkan rangka kerja Spring. Ia menyediakan cara yang pantas dan ringan untuk membina bersendirian, boleh dilaksanakan

Apakah perbezaan antara SpringBoot dan SpringMVC? SpringBoot dan SpringMVC ialah dua rangka kerja pembangunan Java yang sangat popular untuk membina aplikasi web. Walaupun mereka sering digunakan secara berasingan, perbezaan antara mereka adalah jelas. Pertama sekali, SpringBoot boleh dianggap sebagai lanjutan atau versi dipertingkatkan bagi rangka kerja Spring. Ia direka bentuk untuk memudahkan proses permulaan dan konfigurasi aplikasi Spring untuk membantu pembangun

SpringBoot dan SpringMVC ialah dua rangka kerja yang biasa digunakan dalam pembangunan Java Kedua-duanya disediakan oleh rangka kerja Spring, tetapi ia mempunyai beberapa perbezaan dalam fungsi dan penggunaan. Artikel ini akan memperkenalkan ciri dan perbezaan SpringBoot dan SpringMVC masing-masing. 1. Ciri-ciri SpringBoot: Konfigurasi ringkas: SpringBoot sangat memudahkan proses konfigurasi projek melalui prinsip konvensyen berbanding konfigurasi. Ia secara automatik boleh mengkonfigurasi parameter yang diperlukan oleh projek dan pembangun

Perbezaan antara spring dan springmvc: 1. Kedudukan dan fungsi; 2. Fungsi teras; Pengenalan terperinci: 1. Kedudukan dan fungsi Spring ialah rangka kerja pembangunan aplikasi komprehensif yang menyediakan suntikan pergantungan, pengaturcaraan berorientasikan aspek, pengurusan transaksi dan fungsi lain Ia direka untuk memudahkan pembangunan aplikasi peringkat perusahaan, dan Spring MVC ialah Rangka kerja Spring. Modul di dalamnya digunakan untuk pembangunan aplikasi Web dan melaksanakan corak MVC 2. Fungsi teras dan sebagainya.

Perbezaan antara springboot dan springmvc adalah: 1. Makna yang berbeza; 3. Kebergantungan yang berbeza; 5. Produktiviti yang berbeza; Fungsi yang disediakan; 8. Fungsi yang berbeza;

Dengan perkembangan Internet, perkhidmatan Web menjadi semakin biasa. Sebagai antara muka pengaturcaraan aplikasi, JavaAPI sentiasa melancarkan versi baharu untuk menyesuaikan diri dengan senario aplikasi yang berbeza. Sebagai rangka kerja sumber terbuka yang popular, SpringMVC boleh membantu kami membina aplikasi web dengan mudah. Artikel ini akan menerangkan secara terperinci cara menggunakan SpringMVC untuk pemprosesan perkhidmatan Web dalam pembangunan JavaAPI, termasuk mengkonfigurasi SpringMVC, menulis pengawal dan menggunakan

Menganalisis persamaan dan perbezaan antara SpringBoot dan SpringMVC SpringBoot dan SpringMVC adalah rangka kerja pembangunan yang sangat penting dalam bidang Java. Walaupun kedua-duanya adalah sebahagian daripada rangka kerja Spring, terdapat beberapa perbezaan yang jelas dalam penggunaan dan kefungsian. Artikel ini akan membandingkan SpringBoot dan SpringMVC dan menganalisis persamaan dan perbezaan antara mereka. Mula-mula, mari belajar tentang SpringBoot. SpringBo

Peranan pemintas SpringMVC pemintas adalah serupa dengan penapis dalam pembangunan Servlet, yang digunakan untuk pra-memproses dan pasca-memproses pemproses. Pemintas disambungkan ke dalam rantai dalam susunan tertentu, dan rantai ini dipanggil rantai pemintas (InterceptorChain). Apabila kaedah atau medan yang dipintas diakses, pemintas dalam rantaian pemintas akan dipanggil mengikut susunan yang telah ditakrifkan sebelum ini. Pemintas juga merupakan pelaksanaan khusus idea AOP. Perbezaan antara pemintas dan penapis: Penapis (Penapis) Skop penggunaan pemintas (Pemintas) adalah sebahagian daripada spesifikasi servlet dan boleh digunakan oleh mana-mana projek JavaWeb
