当前位置: 代码迷 >> 综合 >> SPRINGMYBATIS01 Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用
  详细解决方案

SPRINGMYBATIS01 Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用

热度:46   发布时间:2023-12-11 15:01:59.0

(7)spring表达式

注:读取bean的属性

这里写图片描述

1. 使用注解来简化配置文件

(1)什么是组件扫描?

容器会扫描指定的包及其子包下面的所有的类,如果该类前面有特定的注解比如@Component),则容器会将其纳入容器进行管理(相当于在配置文件里面有一个bean元素)。

(2)如何进行组件扫描?

step1. 在类前面添加特定的注解,比如 @Component注:默认的id是首字母小写之后的类名。

这里写图片描述

这里写图片描述

step2. 在配置文件当中,配置组件扫描。

这里写图片描述

(3)依赖注入相关的注解

1)@Autowired @Qualifier注:该注解支持set方法和构造器注入。

这里写图片描述

这里写图片描述

2)@Resource注:该注解只支持set方法注入。

这里写图片描述

这里写图片描述

(4)注入基本类型的值和spring表达式的值

这里写图片描述

SpringMVC

(1)什么是SpringMVC?

用来简化基于MVC架构的web应用程序开发的框架。注:SpringMVC是spring中的一个模块。

(2)五大组件

1)有哪五大组件?DispatcherServlet 前端控制器HandlerMapping  映射处理器Controller  处理器ModelAndViewViewResolver  视图解析器2)它们之间的关系a.请求发送给DispatcherServlet来处理,DispatcherServlet会依据HandlerMapping的配置调用对应的Controller来处理。b.Controller将处理结果封装成ModelAndView,然后返回给DispatcherServlet。c.DispatcherServlet会依据ViewResolver的解析调用对应的视图对象(比如jsp)来生成相应的页面。注:视图部分可以使用jsp,也可以使用其它的视图技术,比如freemarker,velocity等等。

这里写图片描述

(3)编程步骤

step1. 导包spring-webmvcstep2. 添加配置文件。step3. 配置DispatcherServlet。step4. 写Controller。step5. 写jsp。step6.在配置文件当中,添加HandlerMapping,ViewResolver的配置。

这里写图片描述


代码演示:

这里写图片描述

/springmvc-day01/src/main/java/controller/HelloController.java

package controller;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;/*** 处理器**/
public class HelloController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {System.out.println("handleRequest()");/** ModelAndView有两个常用构造器: ModelAndView(String viewName)* ModelAndView(String viewName, Map data) 注: viewName: 视图名 data: 处理结果*/return new ModelAndView("hello");}}

/springmvc-day01/src/main/resources/spring-mvc.xml

<?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:context="http://www.springframework.org/schema/context"xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util"xmlns:jpa="http://www.springframework.org/schema/data/jpa"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsdhttp://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsdhttp://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd"><!-- 配置HandlerMapping --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="/hello.do">helloController</prop></props></property></bean><!-- 配置Controller --><bean id="helloController" class="controller.HelloController" /><!-- 配置视图解析器 --><bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/" /><property name="suffix" value=".jsp" /></bean></beans>

/springmvc-day01/src/main/webapp/WEB-INF/hello.jsp

<h1>Hello Kitty</h1>

/springmvc-day01/src/main/webapp/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- DispatcherServlet的初始化方法会启动spring容器,contextConfigLocation用来指定spring配置文件的位置。--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern>
</servlet-mapping></web-app>

/springmvc-day01/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>welkin</groupId><artifactId>springmvc-day01</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>3.2.8.RELEASE</version></dependency></dependencies>
</project>
  相关解决方案