zoukankan      html  css  js  c++  java
  • SSM 起步 (一)

    Spring SpringMVC MyBatis 起步(一)

    【TODO: 简述】

    1.项目创建

    开发环境选择eclipse, java1.8.0, maven 3.5.0

    使用eclipse创建新项目-》选择maven项目-》选择webapp-》输入项目信息-》点击finish创建项目

    创建项目后在在 src/main/ 目录下创建好java文件目录,如红框所示

    2.编辑web.xml,配置servlet

    打开web.xml,内容如下

    1 <!DOCTYPE web-app PUBLIC
    2  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    3  "http://java.sun.com/dtd/web-app_2_3.dtd" >
    4 
    5 <web-app>
    6   <display-name>Archetype Created Web Application</display-name>
    7 </web-app>

     更改一下web.xml的内容,进行servlet的相关配置

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
     5     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     6     
     7   <display-name>FileReportary</display-name>
     8 
     9     <!-- Spring和mybatis的配置文件 -->
    10   <context-param>
    11       <param-name>contextConfigLocation</param-name>
    12       <param-value>classpath:applicationContext*.xml</param-value>
    13   </context-param> 
    14   
    15   <!-- Spring监听器 -->
    16   <listener>
    17       <listener-class>
    18           org.springframework.web.context.ContextLoaderListener
    19       </listener-class>
    20   </listener>
    21 
    22     <!-- 防止Spring内存溢出监听器 -->
    23     <listener>
    24         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    25     </listener> 
    26   
    27   <servlet>
    28       <servlet-name>mvc-dispatcher</servlet-name>
    29       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    30       <!-- DispacherServlet对应的上下文配置,默认为/WEB-INF/$servlet-name$-servlet.xml -->
    31       <init-param>
    32           <param-name>contextConfigLocation</param-name>
    33           <param-value>classpath:mvc-dispatcher-servlet.xml</param-value>
    34       </init-param>
    35       <load-on-startup>1</load-on-startup>
    36   </servlet>
    37   <servlet-mapping id="ServletMapping_1533543131510">
    38       <servlet-name>mvc-dispatcher</servlet-name>
    39       <!-- mvc-dispatcher拦截所有的请求 -->
    40       <url-pattern>/</url-pattern>
    41   </servlet-mapping>
    42 </web-app>

    <param-value>标签中包含了引用配置文件的路径

    1 <param-value>classpath:mvc-dispatcher-servlet.xml</param-value>

    classpath路径在每个J2ee项目中都会用到,即WEB-INF目录下的classes目录,所有src目录下的java、xml、properties等文件编译后都会在此目录下,开发时经常将xml配置文件放置于src目录或子目录下

    引用classpath路径下的文件,只需在文件名前加【classpath:】

     


     

     

    在resources目录下创建mvc-dispatcher-servvlet.xml文件,内容如下

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 
     3 <beans xmlns="http://www.springframework.org/schema/beans"
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5     xmlns:context="http://www.springframework.org/schema/context"
     6     xmlns:mvc="http://www.springframework.org/schema/mvc"
     7     xsi:schemaLocation="
     8     http://www.springframework.org/schema/beans
     9     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    10     http://www.springframework.org/schema/mvc
    11     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    12     http://www.springframework.org/schema/context
    13     http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    14 
    15 
    16     <!-- 激活 @Required @Autowired,JSR 250's @PostConstruct, @PreDestroy and @Resource 
    17         等标注 -->
    18     <context:annotation-config></context:annotation-config>
    19     
    20     <!-- 注解扫描 只搜索@Controller标注的类 -->
    21     <context:component-scan base-package="com.xcz">
    22         <context:include-filter type="annotation"
    23             expression="org.springframework.stereotype.Controller" />
    24     </context:component-scan>
    25 
    26     <!-- 扩充注解驱动,可以将请求参数绑定到控制器参数 -->
    27     <mvc:annotation-driven />
    28 
    29     <!-- 静态资源处理 css ,js ,imgs --> 
    30     <mvc:resources location="/resources/"    mapping="/resources/**" />
    31 
    32     <!-- ViewResolver 可以用多个ViewResolver 使用order属性排序 InternalResourceViewResolver放在最后 -->
    33     <bean
    34         class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    35         <property name="order" value="1" />
    36         <property name="mediaTypes">
    37             <map>
    38                 <entry key="json" value="application/json" />
    39                 <entry key="xml" value="application/xml" />
    40                 <entry key="htm" value="text/html" />
    41             </map>
    42         </property>
    43 
    44         <property name="defaultViews">
    45             <list>
    46                 <!-- JSON View -->
    47                 <bean
    48                     class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
    49                 </bean>
    50             </list>
    51         </property>
    52         <property name="ignoreAcceptHeader" value="true" />
    53     </bean>
    54     
    55     <!-- 200M大小限制 resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常 -->
    56     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    57         <property name="maxUploadSize" value="209715200"/>
    58         <property name="defaultEncoding" value="UTF-8"/>
    59         <property name="resolveLazily" value="true"/>
    60     </bean>
    61     
    62     <!-- 定义跳转的文件的前后缀 ,视图模式配置 --> 
    63     <bean
    64         class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    65         <property name="viewClass"
    66             value="org.springframework.web.servlet.view.JstlView" />
    67         <property name="prefix" value="/WEB-INF/jsp/" />
    68         <property name="suffix" value=".jsp" />
    69     </bean>
    70 </beans>

    3.使用maven管理项目依赖

    打开Preferences设置框:菜单栏-》Window-》preferences 

    打开maven配置: 左侧目录中选择Maven-》installations,点击Add,在Installation home中选中你安装的maven所在目录,点击finish完成配置

    设置Maven User Settings:左侧目录中选择Maven-》User Settings,在User Settings 处选择你安装的maven的配置文件,之后会在配置文件中读取你的maven仓库位置

    点击【Apply and Close】 完成Maven的设置

     


     

     pom.xml是Maven在项目中创建的依赖管理配置文件,打开pom.xml进行编辑,为项目所需的包添加依赖

    PS: 注意在<name>标签内容中去掉空格,有时这些空格可能会导致异常

     

    打开pom.xml

     1 <project xmlns="http://maven.apache.org/POM/4.0.0"
     2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     4     <modelVersion>4.0.0</modelVersion>
     5     <groupId>com.xcz</groupId>
     6     <artifactId>fileReportary</artifactId>
     7     <packaging>war</packaging>
     8     <version>0.0.1-SNAPSHOT</version>
     9     <name>fileReportary Maven Webapp</name>
    10     <url>http://maven.apache.org</url>
    11 
    12     <dependencies>
    13         <dependency>
    14             <groupId>junit</groupId>
    15             <artifactId>junit</artifactId>
    16             <version>3.8.1</version>
    17             <scope>test</scope>
    18         </dependency>
    19     </dependencies>
    20     <build>
    21         <finalName>fileReportary</finalName>
    22     </build>
    23 </project>

    加入properties标签,自定义一些变量,在之后的依赖配置中方便使用

     1     <modelVersion>4.0.0</modelVersion>
     2     <groupId>com.xcz</groupId>
     3     <artifactId>fileReportary</artifactId>
     4     <packaging>war</packaging>
     5     <version>0.0.1-SNAPSHOT</version>
     6     <name>fileReportary Maven Webapp</name>
     7     <url>http://maven.apache.org</url>
     8 
     9     <properties>
    10         <spring.version>4.1.1.RELEASE</spring.version>
    11         <commons-lang.version>2.6</commons-lang.version>
    12         <slf4j.version>1.7.6</slf4j.version>
    13         <jackson.version>2.5.4</jackson.version>
    14         <mybatis.version>3.2.6</mybatis.version>
    15     </properties>
    16 
    17     <dependencies>
    18         <dependency>
    19             <groupId>junit</groupId>
    20             <artifactId>junit</artifactId>
    21             <version>3.8.1</version>
    22             <scope>test</scope>
    23         </dependency>
    24     </dependencies>
    25     <build>
    26         <finalName>fileReportary</finalName>
    27     </build>

    添加依赖包

    编辑完成后使用【ALT+F5】更新项目依赖,此时maven会自动下载依赖包

     1     <dependencies>
     2         <dependency>
     3             <groupId>junit</groupId>
     4             <artifactId>junit</artifactId>
     5             <version>3.8.1</version>
     6             <scope>test</scope>
     7         </dependency>
     8 
     9         <dependency>
    10             <groupId>org.springframework</groupId>
    11             <artifactId>spring-core</artifactId>
    12             <version>${spring.version}</version>
    13         </dependency>
    14         <dependency>
    15             <groupId>org.springframework</groupId>
    16             <artifactId>spring-web</artifactId>
    17             <version>${spring.version}</version>
    18         </dependency>
    19         <dependency>
    20             <groupId>org.springframework</groupId>
    21             <artifactId>spring-webmvc</artifactId>
    22             <version>${spring.version}</version>
    23         </dependency>
    24         <dependency>
    25             <groupId>org.springframework</groupId>
    26             <artifactId>spring-jdbc</artifactId>
    27             <version>${spring.version}</version>
    28         </dependency>
    29 
    30         <dependency>
    31             <groupId>commons-lang</groupId>
    32             <artifactId>commons-lang</artifactId>
    33             <version>${commons-lang.version}</version>
    34         </dependency>
    35         <dependency>
    36             <groupId>org.slf4j</groupId>
    37             <artifactId>slf4j-log4j12</artifactId>
    38             <version>${slf4j.version}</version>
    39             <exclusions>
    40                 <exclusion>
    41                     <artifactId>slf4j-api</artifactId>
    42                     <groupId>org.slf4j</groupId>
    43                 </exclusion>
    44             </exclusions>
    45         </dependency>
    46 
    47         <dependency>
    48             <groupId>org.slf4j</groupId>
    49             <artifactId>slf4j-api</artifactId>
    50             <version>${slf4j.version}</version>
    51         </dependency>
    52 
    53         <dependency>
    54             <groupId>javax.servlet</groupId>
    55             <artifactId>javax.servlet-api</artifactId>
    56             <version>3.1.0</version>
    57         </dependency>
    58 
    59         <dependency>
    60             <groupId>commons-fileupload</groupId>
    61             <artifactId>commons-fileupload</artifactId>
    62             <version>1.3.1</version>
    63         </dependency>
    64 
    65         <!-- 引入JSON -->
    66         <dependency>
    67             <groupId>org.codehaus.jackson</groupId>
    68             <artifactId>jackson-mapper-asl</artifactId>
    69             <version>1.9.13</version>
    70         </dependency>
    71         <dependency>
    72             <groupId>com.fasterxml.jackson.core</groupId>
    73             <artifactId>jackson-databind</artifactId>
    74             <version>${jackson.version}</version>
    75         </dependency>
    76     </dependencies>

      在build标签中加入jetty插件的配置

     1     <build>
     2         <finalName>fileReportary</finalName>
     3         <plugins>
     4             <plugin>
     5                 <groupId>org.eclipse.jetty</groupId>
     6                 <artifactId>jetty-maven-plugin</artifactId>
     7                 <version>9.2.2.v20140723</version>
     8             </plugin>
     9             <plugin>
    10                 <artifactId>maven-compiler-plugin</artifactId>
    11                 <configuration>
    12                     <source>1.6</source>
    13                     <target>1.6</target>
    14                     <!-- 指明编译源代码时使用的字符编码, maven编译的时候默认使用的GBK编码, 通过encoding属性设置字符编码, 告诉maven这个项目使用UTF-8来编译 -->
    15                     <encoding>utf8</encoding>
    16                 </configuration>
    17             </plugin>
    18         </plugins>
    19     </build>

    4.配置log4j

      【resources】目录下新建log4j.properties文件,对log4j进行配置

     1 # Root logger set to DEBUG using the A2 appender defined above.
     2 log4j.rootLogger=info, Cons 
     3 log4j.additivity=false
     4 
     5 log4j.appender.Cons=org.apache.log4j.ConsoleAppender
     6 log4j.appender.Cons.layout=org.apache.log4j.PatternLayout
     7 log4j.appender.Cons.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
     8 
     9 
    10 #Application Logger+
    11 log4j.logger.com.xcz=info, Cons
    12 log4j.logger.org.springframework=info, Cons
    13 log4j.additivity.com.xcz=false
    14 log4j.additivity.org=false

    5.输出Helllo World!

      在com.xcz.controller 下创建IndexController.java文件

      为IndexController类添加类级注解@Controller,@RequestMapping(value = "/index")

      @RequestMapping(value = "/index") 这个注解表明了改类的访问url,是在【 http://localhost:8080/index】 下

     1 package com.xcz.controller;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 
     6 @Controller
     7 @RequestMapping(value = "/index")
     8 public class IndexController {
     9 
    10 }

      创建Index()方法,为其添加@RequestMapping("")注解,指明该方法的访问url为【 http://localhost:8080/index】

      方法内部返回字符串 "index" ,这个index就是所调用的jsp文件的名称

    1     @RequestMapping("")
    2     public String Index() {
    3         return "index";
    4     }

      

      在 【webapp/WEB-INF/jsp】目录下创建 index.jsp文件,并为其添加内容

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>我是标题</title>
     8 </head>
     9 <body>
    10 Hello World!
    11 </body>
    12 </html>

      

      打开windows资源管理器,找到项目根目录,按住SHIFT并右键空白处,选择“在此处运行power shell” 打开命令行控制台

      输入 mvn jetty:run 运行项目

      

      这里提示在8080端口启动的话,就说明启动成功了

      在浏览器中访问 localhost:8080/index查看结果

      

      输出了Hello World! 说明整个流程跑通了!

  • 相关阅读:
    Windows7在自由的虚拟机(微软官方虚拟机)
    POJ1135_Domino Effect(最短)
    项目优化经验分享(七)敏捷开发
    POJ 3299 Humidex(简单的问题)
    NEFUOJ 500 二分法+最大流量
    json 解析解乱码
    【设计模式】Abstract Factory模式
    汇编语言的应用
    Duanxx的STM32学习:NVIC操作
    PHP移动互联网的发展票据(6)——MySQL召回数据库基础架构[1]
  • 原文地址:https://www.cnblogs.com/leiyuxiang/p/9542997.html
Copyright © 2011-2022 走看看