SpringMVC学习-day01基础知识

 今天开始学习springmvc,记录自己的学习过程

0 工作流程

1springMVC简单事例

   a 配置springmvc核心控制器

//配置完成后,会去找WEB-INF/<servlet-name>-servlet.xml配置文件
  <servlet>
  		<servlet-name>DispatcherServlet</servlet-name>
  		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  		<servlet-name>DispatcherServlet</servlet-name>
  		<url-pattern>*.action</url-pattern>
  </servlet-mapping>

2  配置文件

 <!-- 控制器  name表示请求路径,class表示处理类-->
      <bean name="/hello.action" class="app1.HelloAction"/>	
      <!-- 映射器(可省) 将控制器name属性值作为请求的url-->
      <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
      <!-- 适配器(可省)  找实现了Controller接口的后端控制器-->
      <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
      <!-- 视图解析器(如果modelandView中封装的视图名是真实路径 可省) 通过modelandView中封装的视图名找到真正的页面 -->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>

3 Action处理类

public class HelloAction implements Controller {
	

	public HelloAction() {
		System.out.println("HelloAction()+"+this.hashCode());
	}

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0,
			HttpServletResponse arg1) throws Exception {
		ModelAndView modelandView=new ModelAndView();
		modelandView.addObject("message", "第一个springmvc程序");
        //此处是真实路径
		modelandView.setViewName("/WEB-INF/success.jsp");
		return modelandView;
	}
		
}

4 加载自定义目录下的springmvc.xml配置文件

视图解析器InternalResourceViewResolver【解析视图逻辑名对应的真实路径】【如果ModelandView封装的是视图的真实名称,视图解析器配置可省】 

 <!-- 视图解析器(如果modelandView中封装的视图名是真实路径 可省
      逻辑名称就一定要配置) 通过modelandView中封装的视图名找到真正的页面 -->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      		<!-- 视图前缀+视图逻辑名称+视图后缀=真实访问路径 -->
      		<!-- 视图前缀 -->
      		<property name="prefix" value="/WEB-INF/"></property>
      		<!-- 视图后缀 -->
      		<property name="suffix" value=".jsp"></property>
      </bean>

映射器Mapping【什么样的请求交给Action】

  1. org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping(核心)

          将程序员定义的Action所对应的<bean>标签的name属性作为请求路径

 <!-- 映射器(可省) 将控制器name属性值作为请求的url-->
      <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> 
     
     

   2  org.springframework.web.servlet.handler.SimpleUrlHandlerMapping

/delete.action和/update.action和/find.action请求路径都交由<bean>标签为id的Action,即

多个路径对应同一个Action

 <!-- 控制器  name表示请求路径,class表示处理类-->
      <bean name="/add.action" class="app2.UserAction"/>
      
      <bean id="userActionID" class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter">
      		<property name="mappings">
      			<props>
      				<prop key="/delete.action">userActionID</prop>
      				<prop key="/find.action">userActionID</prop>
      				<prop key="/update.action">userActionID</prop>
      			</props>
      		</property>
      </bean>

适配器Adapter【Action实现什么接口】

控制器Controller【Action继承什么类】

   8.1 org.springframework.web.servlet.mvc.ParameterizableViewController

如果请求是/hello.action的请求路径,则直接跳转到/jsp/success.jsp页面,不经过程序员定义的控制器Action

 

9 常见注解

   1 @GetMapping  是spring4.3引入的一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写

   2 @ControllerAdvice为了方便对异常的统一管理,spring mvc提供了ControllerAdvice注解对异常进行统一的处理,拿到这些异常信息后,可以做一些处理,比如提供一个统一的web界面查看异常信息,或者普通到异常信息后,发送短信、邮件形式通知到相关人员,可以帮助开发人员快速发现并定位问题,减少以往通过查看线上日志文件排查问繁琐锁耗时的所耗费的时间

   3 @RestController是Controller和Responsebody的整合,用来自动将返回值转为JSON格式

   

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值