?κεαν??

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

首先是准备工作,第一个是spring-framework包,第二个是logger包,第三个是用于部署的Tomcat

我用的编译工具是MyEclipse,而Tomcat也会在MyEclipse中配置好用于部署项目

新建一个Web项目,然后将刚刚准备好的包都放到项目\WebContent\WEB-INF\lib目录,刷新项目,就可以看到包都添加到项目中

后面就是要修改web.xml了,如果没有在创建项目时选择添加一个默认的web.xml,那么就要自己手写一个

手写web.xml一定要注意xml的声明和DOCTYPE这些不能写错

 

DispatcherServlet

DispatcherServlet主要是用来控制URL的映射,在web.xml中添加DispatcherServlet配置即可让其进行对URL的映射.

映射的就是通过Controller中,带有RequestMapping的方法进行映射

/WEB-INF/web.xml

<servlet>
    <servlet-name>springmvc</servlet-name><!-- 配置DispatcherServlet -->
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-params>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc-config.xml</param-value>
    </init-params>
</servlet>
<servlet-mapping> 
    <servlet-name>springmvc</servlet-name><!-- 使用配置好的DispatcherServlet进行URL映射 --> 
    <url-parrern>/</url-pattern>
    <!-- 让服务器启动的时候就加载springmvc的配置 -->
    <load-on-startup>1</load-on-startup>
</servlet-mapping>

Controller

controller就是用来处理页面发送到后端的请求,并且根据实际情况返回或不返回信息.

而写好一个控制器方法后,只需要添加RequestMapping,即可让这个方法映射到相应的URL

com.wzh.controller:

//添加@Controller注解,将类标记为控制器
@Controller
public class HelloController{ //养成添加log的习惯,调试起来会很有好处 private static final Log logger = LogFactory.getLog(HelloController.class); //添加RequestMapping注解,将方法映射到URL上 @ReuqestMapping(value="/hello") public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { //要习惯于写log logger.info(DEBUG_TAG + " 被调用."); ModelAndView mv = new ModelAndView(); //向model中添加一个message对象 mv.addObject("message", "Hello World!"); //设定该方法返回的视图 mv.setViewName("/WEB-INF/View/welcome.jsp"); logger.info(DEBUG_TAG + " 返回JSP: /WEB-INF/View/welcome.jsp"); return mv; } }

View页面

在控制器中设定返回的视图,在指定的路径就需要有相应的页面

这里就用一个简单的jsp页面来显示hello控制器中model包含的message对象

/WEB-INF/View/welcom.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="UTF-8"%>
<!-- 注意将字符集改成UTF-8,建议在项目设置中将其设定为UTF-8 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>welcome</title>
  </head>
  
  <body>
    <!-- 通过EL表达式取出message并显示到页面上 -->
    ${resquestScope.message}<br>
  </body>
</html>

Spring MVC配置文件

Spring MVC配置文件需要添加很多内容,但是基本上一次添加,后面都可以复制粘贴去进行修改

只是要注意命名空间和架构地址要写对,否则不能通过编译

<?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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"       
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd 
                           http://www.springframework.org/schema/context 
                           http://www.springframework.org/schema/context/spring-context-4.3.xsd">
           
           <!-- 将包中所有被注解的方法或类进行扫描并注册为相应的组件 -->
           <context:component-scan base-package="com.wzh.controller" />
           
           <!-- 添加该配置会自动注册RequestMappingHanderMapping与RequestMappingHandlerAdapter -->
           <mvc:annotation-driven />
           
           <!-- 添加该配置表示使用默认的Servlet来响应静态文件,用于解决引入静态文件被DispatcherServlet当作请求路径 -->
           <!-- 如引入一些js库,css文件的时候,导致页面返回404 -->           
           <mvc:default-servlet-handler />
           
           <!-- 设置固定的返回前缀或后缀,这里把后缀统一设定为.jsp -->
           <!-- 这样在返回视图名称的时候,就不需要每次都加.jsp -->
           <!-- 前缀的property name是prefix,可以自行添加测试 -->
           <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
             <property name="suffix">
               <value>.jsp</value>
             </property>
           </bean>
</beans>

到这里,一个简单的Hello World项目基本建成,剩下的工作就是需要将它部署到Tomcat中然后打开浏览器来进行访问

完成部署之后运行服务器,然后打开浏览器并输入http://localhost:8080/[你的项目名称]/hello就能

 

最后总结一下:

一个基本的spring mvc除了有控制器,模型和视图之外,还需要在web.xml和springmvc-confgi.xml中做好相应的配置

做好配置之后,还需要在web.xml中引入springmvc-config的设置

在controller中,也可以在给类添加RequestMapping注解,让controller不直接映射到URL的根[本例的URL根就是localhost:8080/SpringMVCTest]

DispatcherServlet中有很多配置的细节,由于有一个默认的配置文件,因此不需要每一项都进行配置,只需要在需要自定义配装时,在springmvc-config.xml进行配置即可.

总的来说,DispatcherServlet负责拦截用户请求和处理请求,Controller负责后台逻辑等业务控制

 

下一节将学习使用Spring MVC的常用注解

 

 

 

 

posted on 2017-05-05 09:09  Ὠκεανός  阅读(263)  评论(0)    收藏  举报