spring学习笔记001

转载自:http://www.cnblogs.com/zplogo/p/5029918.html
SpringMVC学习笔记001
  情景:SpringMVC向后台控制层发送请求,特定方法处理该请求(获取传过来的数据,响应请求,把一些简单数据放入request即Model对象中)

在web.xml中加入SpringMVC的DispatcherServlet核心控制器,指明拦截哪些请求。
在WEB-INF文件夹下建立SpringMVC的XML配置文件,component-scan指明扫描那个包下的控制类。
被@Controller注解的类视为控制类,被@RequestMapping(value="",method=RequestMethod..POST)注解的方法表示处理该类请求(被value值匹配的请求),而且该请求只能是POST请求。
关于@RequestParam和Model model对象,如处理请求的方法 String login(@RequestParam("username") String userName,Model model){ model.addAttribute("userName",userName) } 表示从Request参数username取值赋值给userName,然后放入model对象中,model对象相当于request,里面存储的对象可以通过EL表达式 ${}获取。
@RequestParam从request参数中取值,如果action层变量名和request参数名相同,不需要@RequestParam注解就可以获取值。

  Q1:场景:直接输入URL地址以访问控制层达到实现一些功能的目的,如列表 【模拟表单提交】

       A1:可以浏览器发送请求模拟表单提交等如http://localhost:8080/project/listViewer.spring?username=zhang

          若拦截以".spring"结尾请求,控制层方法将处理listViewer这个请求,并接受参数username的值

  Q2:场景:控制层限制请求的方式?

       A2:在请求处理方法上加@RequestMapping(value="",method=RequestMethod..POST)指明前台发送的请求只能是POST

  Q3:场景:解决多人开发路径可能重复的问题?(如前台登录发送/login请求,后台登录也发送/login请求)【有助于模块化开发】

       解决路径重复问题的办法就是限定各模块的访问路径。
       A3:两个请求可以是/a/login和/b/login,控制层有两个类分别处理/a或者/b下面的请求如:

         
1 @Controller
2 @RequestMapping("/a")
3 public class Login{
4 @RequestMapping("/login")
5 public String login(){}
6 }

  如果在类的上方使用@RequestMapping注解,表示首先定义相对的父路径,然后在方法上定义的路径是相对于类级别的。

  Q4: 路径问题?controller响应请求是以当前路径为基准,响应文件的路径写法类似Linux切换目录。

     可以在springMVC-servlet.xml加入如下配置:

    

     它的 功能就是限定默认访问的是/ 根路径。

     注:响应同一目录下文件,路径不要加/,一般情况全部JSP文件应该放在/WEB-INF目录下,这样可以防止直接通过路径访问,必须让后台处理后跳转。

   Q5:控制层重定向到控制层-有参数和无参数传递(区别在请求后面跟参数)

      A5:如控制层处理方法 return "redirect:/listUsername.spring?username=zhang";

        // SpringMVC重定向的关键代码在返回字符串加入"redirect:/"前缀。表示当前目录下发送一个listUsername.spring请求。

   Q6:匹配URL路径执行指定Controller (控制层的处理方法@RequestMapping的value值用变量表示,表示请求的路径该部分可以是任意值,都可以匹配上)

      A6:如发送的请求为 http://localhost:8080/springmvc/login/a/login.spring 表示发送/login目录下的login请求。

        

复制代码
@Controller
@RequestMapping("/login/{subfolder}")
public class Login{
@RequestMapping("/login")
public String login(@PathVariable("subfolder") String subFolder){
System.out.println(subFolder);
return "/index.jsp";
}
}
复制代码
        打印输出a,这里login方法中传入的参数和上面@RequestMapping注解的名称相同时,不用向@PathVariable出入值。

时间: 2024-10-12 14:45:45

spring学习笔记001的相关文章

Spring学习笔记(一)

Spring学习笔记(一) Spring核心思想: IOC:  Inversion Of Control (控制反转) / DI: Dependency Injection (依赖注入) AOP: Aspect Oriented Programming (面向切面编程) IOC 1. 简单的应用 Model package com.wangj.spring.model; public class User { private String username; private String pas

不错的Spring学习笔记(转)

Spring学习笔记(1)----简单的实例 ---------------------------------   首先需要准备Spring包,可从官方网站上下载.   下载解压后,必须的两个包是spring.jar和commons-logging.jar.此外为了便于测试加入了JUnit包.   在Myeclipse中创建Java项目.   编写一个接口类,为了简单,只加入了一个方法.   Java代码   1.package com.szy.spring.interfacebean;  

《Spring学习笔记》:Spring、Hibernate、struts2的整合(以例子来慢慢讲解,篇幅较长)

<Spring学习笔记>:Spring.Hibernate.struts2的整合(以例子来慢慢讲解,篇幅较长) 最近在看马士兵老师的关于Spring方面的视频,讲解的挺好的,到了Spring.Hibernate.struts2整合这里,由于是以例子的形式来对Spring+Hibernate+struts2这3大框架进行整合,因此,自己还跟着写代码的过程中,发现还是遇到了很多问题,因此,就记录下. 特此说明:本篇博文完全参考于马士兵老师的<Spring视频教程>. 本篇博文均以如下这

spring学习笔记(19)mysql读写分离后端AOP控制实例

在这里,我们接上一篇文章,利用JNDI访问应用服务器配置的两个数据源来模拟同时操作不同的数据库如同时操作mysql和oracle等.实际上,上个例子可能用来模拟mysql数据库主从配置读写分离更贴切些.既然如此,在本例中,我们就完成读写分离的模拟在web端的配置实例. 续上次的例子,关于JNDI数据源的配置和spring datasource的配置这里不再重复.下面着重加入AOP实现DAO层动态分库调用.可先看上篇文章<spring学习笔记(18)使用JNDI模拟访问应用服务器多数据源实例 >

Spring学习笔记(三)

Spring学习笔记(三) AOP 一.使用Annotation方式实现AOP.步骤: xml里加入配置:<aop:aspectj-autoproxy /> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org

Spring学习笔记--initmethod和构造函数、setter方法的加载顺序

今天学习了一下spring中bean的初始化和销毁,突然想了解一下初始化方法跟构造函数及setter方法注入的执行顺序,记录在此,仅作为学习笔记. 当实例化一个bean时,可能需要执行一些初始化操作来确保该bean处于可用状态.同样地,当不再需要bean时,将其从容器中移除是,我们可以还需要按顺序 执行一些清除工作. package com.zp.chapter2; public class Auditorium { private String name; public void doBefo

【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html [Spring学习笔记-MVC-4]返回Json数据-方式2:http://www.cnblogs.com/ssslinppp/p/4530002.html [Spring学习笔记-MVC-3.1]SpringMVC返回Json数据-

Spring学习笔记 2014-7-9

Spring需要applicationContext.xml来管理各个Bean,其基本格式: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:t

Spring学习笔记一(Spring核心思想)

通过学习<Spring in action (Third edition)>的第一章,我大概了解了Spring的基本思想: 1,依赖注入(Dependnecy Injection): 在不使用Spring框架的情况下,一个类要跟另一个类建立联系,可能会使用如下的模式: class A{...} class B{ private A a; ...       } 这样的话,每次实例化一个B的对象,如b1,必定实例化一个A的对象,如a1,并且b1和a1是紧耦合的,b1牢牢地和a1绑定在一起了.他们