springMVC 之 helloworld

要想使用springMVC 先要导入相应的jar包 现在新建一个web project工程 把相应的包放在 WebRoot下的WEB-INF想的lib目录下:

在暂时不使用注解的情况下只要导入下面的jar包 (这是在spring3的jar包 如果是spring2.*的话 只要找相应的变一下就行):

当这些jar包放到lib目录下之后,现在要配置一下web.xml了:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
 3   <display-name></display-name>
 4   <servlet>
 5     <servlet-name>mvc-dispatcher</servlet-name>
 6     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 7     <load-on-startup>1</load-on-startup>
 8   </servlet>
 9   <servlet-mapping>
10     <servlet-name>mvc-dispatcher</servlet-name>
11     <url-pattern>*.test</url-pattern>
12   </servlet-mapping>
13 </web-app>

org.springframework.web.servlet.DispatcherServlet是springMVC的负责接收和处理所有web请求的front controller 他将读取相应的配置文件 再把请求转发到相应的控制器:
现在来写一个简单的控制器:

 1 package com.yixi.controller;
 2 
 3 import javax.servlet.http.HttpServletRequest;
 4 import javax.servlet.http.HttpServletResponse;
 5 
 6 import org.springframework.web.servlet.ModelAndView;
 7 import org.springframework.web.servlet.mvc.Controller;
 8 
 9 public class HelloController implements Controller {
10 
11     public ModelAndView handleRequest(HttpServletRequest request,
12             HttpServletResponse response) throws Exception {
13         request.setAttribute("msg","HelloController....运行了");
14         return new ModelAndView("hello");
15     }
16 
17 }

控制器要实现Controller或者继承AbstractController 然后实现相应的方法即可。

在这里的return new ModelAndView("hello"); 是会返回到以hello为名称的相应的页面上 , 那它到底是转到哪里呢? 这个就是要看配置文件中的配置了;那配置文件是怎样配置的呢?

1.首先 我们在web.xml文件中配置的是<servlet-name>mvc-dispatcher</servlet-name> 那么配置文件的名称默认要为${servlet-name}-servlet.xml 即mvc-dispatcher-servlet.xml 配置内容如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
 4     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
 5     xmlns:context="http://www.springframework.org/schema/context"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 7                        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
 8                        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
 9                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
10                        http://www.springframework.org/schema/aop  http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
11 
12     <!-- 映射解释器 -->
13        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
14                <property name="mappings">
15                    <props>
16                        <prop key="hello.test">helloController</prop>
18                    </props>
19                </property>
20        </bean>
21        <!-- 视图解释器 -->
22        <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
23                <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
24                <property name="prefix" value="/WEB-INF/jsp/"></property>
25                <property name="suffix" value=".jsp"></property>
26        </bean>
27     <bean id="helloController" class="com.yixi.controller.HelloController"></bean>
28  </beans>

org.springframework.web.servlet.handler.SimpleUrlHandlerMapping这个映射解析器是根据提交的URL来找相应的Controller 例如在这就是老公url中是hello.test 那么将会去找helloController 而helloController将由<bean id="helloController" class="com.yixi.controller.HelloController"></bean>来配置。

org.springframework.web.servlet.view.UrlBasedViewResolver是视图解析器 它其中有几个属性:

  a.  viewClass :这是配置将要显示的视图是什么类型的  org.springframework.web.servlet.view.JstlView是jsp的View类型 ,    其中还有ptf,execl,xml等类型的。

  b.  prefix: 这是配置要找的视图的路径前缀:在这就是/WEB-INF/jsp/目录下的

  c. suffix:这是配置要找的视图的路径后缀:在这就是.jsp结尾的 

  所以要找的视图是:/WEB-INF/jsp/hello.jsp 

在加载的时候默认会到/WEB-INF目录下去找这个配置文件 所以mvc-dispatcher-servlet.xml应该放在WEB-INF目录下面 当然还要把hello.jsp文件放到/WEB-INF/jsp/目录下。

现在访问http://localhost:8080/项目名/hello.test 即可访问到hello.jsp文件。

这样关于springMVC的一个helloworld的程序就写完了。

 

原文地址:https://www.cnblogs.com/yixiwenwen/p/2736645.html