天天看點

在spring mvc應用中建立第一個Controller

在操作前需要了解的知识:

  1. Spring mvc是一个包含了Dispatcher servlet的MVC框架。他调用控制器方法并转发视图。
  2. Controller使用注解(annotation)的方式进行配置。
  3. Spring使用扫描的机制来找到应用程序中所有基于注解的控制器。
  4. 为了确保工程中所有的jsp文件不被用户直接访问到,因此工程中的jsp一般不直接放在webapp目录下,而是放置在webapp/WEB-INF下。

Controller的具体配置过程:

(1)准备操作。

在webapp/WEB-INF目录下创建config(存放配置文件)和view(存放jsp文件)文件夹。在 src/main/java目录下创建controller包(存放控制器类)。

在spring mvc應用中建立第一個Controller

(2)在web.xml中配置DispatcherServlet。

打开web.xml文件,在< web-app >标签内输入以下内容。

<servlet>
    <servlet-name>spring-mvc</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/config/spring-mvc-servlet.xml
        </param-value>
    </init-param>
    <load-on-startup></load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>spring-mvc</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
           
在spring mvc應用中建立第一個Controller

以上配置应该注意的几点:

  1. 以上配置为本web工程添加了Spring MVC的Dispatcher Servlet,这个servlet采用扫描将URL转发到相应的Controller中。
  2. servlet和servlet-mapping中的servlet-name必须保持一致。
  3. init-param中的contextConfigLocation参数指出了本工程的spring mvc配置文件所在的目录,如果不配置该参数,spring mvc配置文件的默认路径为/WEB-INF下。
  4. spring mvc配置文件的名称为上面web.xml中< servlet-name >标签配的值在加上“-servlet.xml”组成。
  5. url-pattren表示该servlet将要拦截并转发的url的形式。“/”表示拦截所有url。

(3)Spring MVC配置文件

/WEB-INF/config目录下创建spring-mvc-servlet.xml文件。(具体的创建位置由web.xml中servlet的contextConfigLocation决定)。向该xml文件中添加下面信息。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"  
xmlns:context="http://www.springframework.org/schema/context"  
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xsi:schemaLocation="  
      http://www.springframework.org/schema/beans       
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
      http://www.springframework.org/schema/context   
      http://www.springframework.org/schema/context/spring-context-3.0.xsd  
      http://www.springframework.org/schema/mvc  
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">  
      <!-- 启用spring mvc注解 -->
      <context:annotation-config />
      <!-- 设置使用注解的类所在的包,即Dispatcherservlet寻找controller时扫描的包 -->
      <context:component-scan base-package="controller" />
      <!-- 对处理结果所转向的页面进行解析 -->
      <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="prefix" value="/WEB-INF/view/" />
          <property name="suffix" value=".jsp" />
      </bean>
</beans>
           
在spring mvc應用中建立第一個Controller

以上配置文件应注意的几点:

  1. xmlns用来标识关于初始化bean的格式文件地址;xmlns:xsi用来标识辅助初始化bean的格式文件地址;xsi:context:关于spring上下文,包括加载资源文件。
  2. InternalResourceViewResovler是常用的视图解析器,如果Controller返回的是index,那么通过视图解析器解析之后的视图就是/WEB-INF/view/index.jsp。

(3)编写controller类文件

在src/mian/controller文件夹下创建FisetController类。

package controller;
import org.springframework.stereotype.Controller;  
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class FirstController {
    @RequestMapping("index")
    public String Index() {
        return "index";
    }
}
           
在spring mvc應用中建立第一個Controller

(4)编写index.jsp

在/WEB-INF/VIEW文件夹下创建index.jsp,在index.jsp中添加页面内容。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
My First Controller.
</body>
</html>
           
在spring mvc應用中建立第一個Controller

(6)在Package Explorer中右击工程名,依次选择 run as -> run on server,然后选择tomcat服务器。打开浏览器,输入http://localhost:8080/test/index即可访问index页面。

在spring mvc應用中建立第一個Controller