spring3 MVC手工搭建Sprin

发布时间:2019-07-10 09:51:19编辑:auto阅读(1324)

     转载地址:http://hi.baidu.com/hi_c/blog/item/598bcd17c2c5601ac83d6d78.html

    手工搭建步骤: 1.开发环境确认    2.Spring3jar    3.Spring3项目配置    4.其他

    一、开发环境确认

        1.工具及版本

        jdk我用的是1.6的;jdk的下载安装和配置就不讲了,如果这个还搞不定还谈什么spring

        myeclipse用的是6.0(实在太落后啦,还是8.X舒服)不过这里是手工搭建不使用自动生成工具,所以版本无所谓的;使用eclipse for     javaEEok,不过跟myeclipse可能在项目目录上会有少许的不同,eclipseweb跟目录是WebContent,而myeclipse通常是WebRoot

        tomcat6

        2.确认

        为了保证开发环境正常请做一下确认,在运行里输入cmd打开命令行,输入java -version命令,显示类似如下内容:

        java version "1.6.0_23"
        Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
        Java HotSpot(TM) Client VM (build 19.0-b09, mixed mode, sharing)

    然后,启动tomcat6,请确认控制台没有报错信息,控制台输出类似如下:

    2011-1-19 14:58:27 org.apache.coyote.http11.Http11Protocol init
    信息: Initializing Coyote HTTP/1.1 on http-8080
    2011-1-19 14:58:27 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 255 ms
    2011-1-19 14:58:27 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2011-1-19 14:58:28 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/6.0.20
    2011-1-19 14:58:29 org.apache.coyote.http11.Http11Protocol start
    信息: Starting Coyote HTTP/1.1 on http-8080
    2011-1-19 14:58:29 org.apache.jk.common.ChannelSocket init
    信息: JK: ajp13 listening on /0.0.0.0:8009
    2011-1-19 14:58:29 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=0/15  config=null
    2011-1-19 14:58:29 org.apache.catalina.startup.Catalina start
    信息: Server startup in 1401 ms

    确认myeclipseeclipseserver视图下有你的tomcat6且可以正常启动关闭,如果没有自行配置,如果不知道自己网上搜

    确认你的myeclipseeclipse下的java平台是刚才确认过的jdk1.6

    这一部分最后一步,新建一个webProject,如果你用的是是eclipse for javaEE那么项目类型选择Static web project

    注意,eclipse新建web项目需要选择target runtime,如果没有就配上你的tomcat6myeclipse新建项目j2EE Specification Level项要选择javaEE5.0

     二、Spring3jar

       1.下载Spring3

        先到官网现在吧,上网址:http://www.springsource.org/download 现在最新版本是3.0.5,看图,点圈住区域的链接后跳转到文件下载选择页面,需要下载两个文件:

        spring-framework-3.0.5.RELEASE-with-docs.zip     spring-framework-3.0.5.RELEASE-dependencies.zip

    但是现在官方已经没有了 spring-framework-3.0.5.RELEASE-dependencies.zip的下载链接(这些依赖我们都可以分别到各自相关的开源项目下载),不知为何,你可以分别网上搜

    spring-framework-3.0.5.RELEASE-with-docs.zip
    dependency
    的目录结构基本上全是以com.XX org.XX为名字的目录,太长了就不截图了。

    下面就是导入了,导入前先说明白两点:

                 1. spring3开始jar包不再包含全能的spring.jar了,而是分成20多个jar包了,配置可以按需引入了

                 2. 项目中使用spring除了引入dist目录下的jar包,还需要dependencies下的一些依赖包,下面再具体说。

    2.引入dist目录下除了下面三个其余所有包

    org.springframework.web.struts-3.0.5.RELEASE.jar

    org.springframework.spring-library-3.0.5.RELEASE.libd

    org.springframework.web.portlet-3.0.5.RELEASE.jar

    如何引入jar包,对项目鼠标右键选择【Build Path】,选择【Add Extenal Archives,浏览到jar包的位置,打开即可

    3.接下来,还必须导入日志相关的一个jar---commons logging和一个名为com.springsource.org.aopalliance-1.0.0.jarjar

    分别在spring-framework-3.0.5.RELEASE-dependencies\org.apache.commons\com.springsource.org.apache.commons.logging\1.1.1

    spring-framework-3.0.5.RELEASE-dependencies\org.aopalliance\com.springsource.org.aopalliance\1.0.0

    目录下。如果不引入部署项目tomcat会报如下错误:严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
    java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

    三、spring3配置

    1.web.xml配置

    web.xml内容如下:       

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
     xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-servlet.xml</param-value>
      </context-param>
     <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
     <!--
    对像js,css,gif等静态文件的访问,需要映射到默认的servlet -->

     <!-- 这里省去对静态资源url的配置,当然这样的话tomcat控制台就会报警告了,对html的请求、页面中的图片及css效果也是无法访问的

            不过我们这是搭基本环境嘛,就先不要图片吧,如果想解决这个问题,可以看我另外一篇文章
     -->
     <!--
    配置spring核心servlet -->
     <servlet>
      <servlet-name>spring</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet-mapping>
      <servlet-name>spring</servlet-name>
      <url-pattern>/</url-pattern>
      <!-- url
    配置为/,不带文件后缀,会造成其它静态文件(jscss)不能访问。如配为*.do,则不影响静态文件的访问 -->
     </servlet-mapping>

    </web-app>

    2.Spring应用上下文配置,在web.xml中我们配置了springservlet -----<servlet-name>spring</servlet-name>

    web.xml里有这一段

    <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-servlet.xml</param-value>
        </context-param>

    用于开启基于注解的springMVC功能那么我们需要在跟web.xml同一目录下新建一个spring-servlet.xml文件,内容为:

    <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:context="http://www.springframework.org/schema/context"
     xmlns:p="http://www.springframework.org/schema/p"
     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.xsd
          http://www.springframework.org/schema/mvc
          http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
         <!--
    启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射-->
         <mvc:annotation-driven />

         <!-- 启动包扫描功能,以便注册带有@Controller@Service@repository@Component等注解的类成为springbean -->
         <context:component-scan base-package="com.mvc.rest" />

         <!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->
         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp" />
    </beans>

    配置是不是很清爽?多亏spring3增加的mvccontexttx等几个命名空间了

    四、其他

    1.建包

    新建一个包,包名就是我们spring-servlet.xml <context:component-scan base-package="com.mvc.rest"></context:component-scan> 
    里的com.mvc.rest

    2.建立Constroller

    com.mvc.rest包下新建一个java类,代码如下:

    package com.mvc.rest;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.ModelAndView;

    @Controller
    public class RestConstroller {
     
     public RestConstroller() {
     }
     
     @RequestMapping(value = "/login/{user}", method = RequestMethod.GET)
     public ModelAndView myMethod(HttpServletRequest request,
       HttpServletResponse response, @PathVariable("user")
       String user, ModelMap modelMap) throws Exception {
      
      modelMap.put("loginUser", user);
      return new ModelAndView("/login/hello", modelMap);
     }

     @RequestMapping(value = "/welcome", method = RequestMethod.GET)
     public String registPost() {
      return "/welcome";
     }
    }

    3.建视图

    正如spring-servlet.xml

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp" />所配置的视图路径,我们需要在WEB-INF下建立view目录,在view下建立jsp文件;

    正如RestConstroller里两个方法的返回语句:return new ModelAndView("/login/hello", modelMap);return "/welcome";所约定,我们需要在view下建立相应的login目录并在其下建立hello.jsp,在/WEB-INF/view下建立welcome.jsp
    hello.jsp
    内容如下:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'hello.jsp' starting page</title>
        
     <meta http-equiv="pragma" content="no-cache">
     <meta http-equiv="cache-control" content="no-cache">

      </head>
      
      <body>
       
    你好:<%=request.getAttribute("loginUser") %>,现在时间是<%= new Date() %>
      </body>
    </html>

    welcome.jsp就随意吧,测试嘛.

     4.部署访问

    myeclipse下部署项目并运行

    打开浏览地址栏输入:http://localhost:8080/sandDemo001/login/heamer 这里的heamer是自定义的,作为请求参数解析

    输入:http://localhost:8080/sandDemo001/welcome  则显示你welcome.jsp应该显示的内容。

    整个过程已经完成,需要注意的有几方面,1.环境一定要是可用的  2.jar包正确的引入到项目中   3.配置文件要小心修改,不要犯括号不配对类似的低级错误

     

关键字

上一篇: google maps js v3 ap

下一篇: k3 数据库维护