mvc学习小笔记(三) mvc基础相关

273 阅读1分钟

mvc基于组件执行,以下为原理图:

<a href="anno/testRequestParam?name=哈哈">RequestParam</a>
@Controller
@RequestMapping("/anno")
public class AnnoController {

@RequestMapping(value ="/testRequestParam")
public String testRequestParam(@RequestParam(name="name") String username){
    System.out.println("执行了...");
    System.out.println(username);
    return "success";
}

如上,举例。1.前端超链接发送anno/testRequestParam的请求,2.3.前端控制器通过处理器映射器根据url(anno/testRequestParam)找到annoController下的执行方法testRequestParam()。4.5.处理器适配器执行testRequestParam()方法。6.7.return success。8.9.视图解析器处理success,找到success.jsp。10.11.视图渲染成html页面,并将数据进行填充显示给前端用户

resources/springmvc.xml文件

<!-- 开启注解扫描 -->
<context:component-scan base-package="cn.itcast"/>
@Controller
public class AnnoController {

如上,控制器类添加注解@Controller,spring可以读出来。

<!-- 视图解析器对象 -->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>
@RequestMapping(value ="/testRequestParam")
public String testRequestParam(@RequestParam(name="name") String username){
    System.out.println("执行了...");
    System.out.println(username);
    return "success";
}

如上配置原理图中的视图解析器,找/WEB-INF/pages/下的.jsp格式的文件

<!-- 开启SpringMVC框架注解的支持 -->
<mvc:annotation-driven conversion-service="conversionService"/>

如上配置后,则自动加载了RequestMappingHandlerMapping(处理映射器)和RequestMappingHandlerAdapter(处理适配器)

<!--前端控制器,哪些静态资源不拦截-->
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>

在web.xml中拦截器对所有都进行了拦截,如上可以让静态资源不被拦截,从而可以获取对应的静态资源。

webapp/WEB-INF/web.xml文件

<!--配置前端控制器-->
<servlet>
  <servlet-name>dispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

<!--配置解决中文乱码的过滤器-->
<filter>
  <filter-name>characterEncodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>characterEncodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

如上,前端配置mvc的配置文件。