本文说明:本文介绍使用maven搭建SpringMVC最简单的框架程序过程,适合初学者上手。

下载链接 点此进入下载链接

1.创建一个maven webapp工程。

2.修改WEB-INF目录下的web.xml文件:

内容如下,文中有注释

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  6. version="3.0">
  7. <display-name>Archetype Created Web Application</display-name>
  8. <!-- spring MVC的核心就是DispatcherServlet,使用springMVC的第一步就是将下面的servlet放入web.xml
  9. servlet-name属性非常重要,默认情况下,DispatchServlet会加载这个名字-servlet.xml的文件,如下,就会加载
  10. dispather-servlet.xml,也是在WEN-INF目录下。
  11. -->
  12. <servlet>
  13. <servlet-name>dispatcher</servlet-name>
  14. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  15. <load-on-startup>1</load-on-startup>
  16. </servlet>
  17. <!-- 设置dispatchservlet的匹配模式,通过把dispatchservlet映射到/,默认servlet会处理所有的请求,包括静态资源 -->
  18. <servlet-mapping>
  19. <servlet-name>dispatcher</servlet-name>
  20. <url-pattern>/</url-pattern>
  21. </servlet-mapping>
  22. <!-- 字符集过滤器 -->
  23. <filter>
  24. <filter-name>encodingFilter</filter-name>
  25. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  26. <init-param>
  27. <param-name>encoding</param-name>
  28. <param-value>UTF-8</param-value>
  29. </init-param>
  30. <init-param>
  31. <param-name>forceEncoding</param-name>
  32. <param-value>true</param-value>
  33. </init-param>
  34. </filter>
  35. <filter-mapping>
  36. <filter-name>encodingFilter</filter-name>
  37. <url-pattern>/*</url-pattern>
  38. </filter-mapping>
  39. </web-app>

说明:其中字符集过滤器部分不是必须的,但是如果要处理中文的话,最好还是加上。

3.在WEN-INF目录下创建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"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xmlns:p="http://www.springframework.org/schema/p"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/mvc
  10. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  11. http://www.springframework.org/schema/context
  12. http://www.springframework.org/schema/context/spring-context.xsd"
  13. default-lazy-init="true">
  14. <!-- 通过mvc:resources设置静态资源,这样servlet就会处理这些静态资源,而不通过控制器 -->
  15. <!-- 设置不过滤内容,比如:css,jquery,img 等资源文件 -->
  16. <mvc:resources location="/*.html" mapping="/**.html" />
  17. <mvc:resources location="/css/*" mapping="/css/**" />
  18. <mvc:resources location="/js/*" mapping="/js/**" />
  19. <mvc:resources location="/images/*" mapping="/images/**" />
  20. <!-- 添加注解驱动 -->
  21. <mvc:annotation-driven />
  22. <!-- 默认扫描的包路径 -->
  23. <context:component-scan base-package="com.my.web" />
  24. <!-- mvc:view-controller可以在不需要Controller处理request的情况,转向到设置的View -->
  25. <!-- 像下面这样设置,如果请求为/,则不通过controller,而直接解析为/index.jsp -->
  26. <mvc:view-controller path="/" view-name="index" />
  27. <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
  28. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
  29. <!-- 配置jsp路径前缀 -->
  30. <property name="prefix" value="/"></property>
  31. <!-- 配置URl后缀 -->
  32. <property name="suffix" value=".jsp"></property>
  33. </bean>
  34. </beans>

说明: 其中<!-- 默认扫描的包路径 -->
<context:component-scan base-package="com.my.web" />中的路径,com.my.web,是需要在src/main/java中创建的包,用来放Java代码。

4.使用maven引入SpringMVC所依赖的jar包。

修改pom.xml文件

4.1添加属性,在<project>标签中

  1. <properties>
  2. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  3. <spring.version>3.1.2.RELEASE</spring.version>
  4. </properties>

4.2添加依赖,在<dependencies>标签中

  1. <!-- spring begin -->
  2. <dependency>
  3. <groupId>org.springframework</groupId>
  4. <artifactId>spring-webmvc</artifactId>
  5. <version>${spring.version}</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.springframework</groupId>
  9. <artifactId>spring-jdbc</artifactId>
  10. <version>${spring.version}</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.springframework</groupId>
  14. <artifactId>spring-context</artifactId>
  15. <version>${spring.version}</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.springframework</groupId>
  19. <artifactId>spring-aop</artifactId>
  20. <version>${spring.version}</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.springframework</groupId>
  24. <artifactId>spring-core</artifactId>
  25. <version>${spring.version}</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.springframework</groupId>
  29. <artifactId>spring-test</artifactId>
  30. <version>${spring.version}</version>
  31. </dependency>
  32. <!-- spring end -->

添加完成之后,通过更新工程,就会自动引入所依赖的jar包。

做完上面的准备工作之后就可以写代码了。

5.写前台页面:

在maven工程中生成的有一个index.jsp,将其修改成一下内容,很简单,只是一个登陆框,提交一个form表单,中的用户名和密码。

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>欢迎</title>
  8. </head>
  9. <body>
  10. <h2>Hello World!</h2>
  11. <form action="login">
  12. 用户名:<input id="username" name="username" type="text"></input><br>
  13. 密  码:<input id="username" name="password" type="password"></input><br>
  14. <input type="submit">
  15. </form>
  16. <span>当前IP:<%=request.getRemoteAddr() %></span>
  17. </body>
  18. </html>

6.写controller层代码,用来响应前台请求。

  1. package com.my.web.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestParam;
  5. import org.springframework.web.bind.annotation.ResponseBody;
  6. /**
  7. * TODO 控制层代码
  8. * @author 591791
  9. * @date 2014年11月27日
  10. */
  11. @Controller
  12. public class MyController {
  13. @RequestMapping("login") //用来处理前台的login请求
  14. private @ResponseBody String hello(
  15. @RequestParam(value = "username", required = false)String username,
  16. @RequestParam(value = "password", required = false)String password
  17. ){
  18. return "Hello "+username+",Your password is: "+password;
  19. }
  20. }

7,部署到tomcat上之后,运行效果如下:

====Q&A====

评论区有朋友说到实践的时候会报错:

“Exception starting filter encodingFilter
java.lang.ClassNotFoundException: ”

这是由于编译环境配置的问题,这个encoder的jar包是通过maven的形式加进来的,可能maven依赖库没有告诉到tomcat,所以tomcat启动的时候就找不到这个类。

解决办法是在project的properties中“Deployment Assembly”中加上maven lib,就可以了。

如下图:

 
 
 

版权声明:本文为宝宝原创文章,未经宝宝允许不得转载。

搭建最简单的SpringMVC框架(使用maven)的更多相关文章

  1. 利用Maven, 搭建最简单的SpringMVC框架

    本文介绍使用maven搭建SpringMVC最简单的框架程序过程,适合初学者上手. 文章下载

  2. 搭建一个简单的springMVC框架

    //新建一个简单的maven项目,选择war包 //web.xml配置 <?xml version="1.0" encoding="UTF-8"?> ...

  3. 用Maven搭建简单的SpringMVC框架

    本文会详细阐述如何用Maven搭建一个简单的SpringMVC框架 这里就不介绍SpringMVC框架了,咱们直接来搭建 第一步 创建一个Maven的web项目  这里有一个简单的方法 new一个Ma ...

  4. 简单实现springmvc框架(servlet+自定义注解)

    个人水平比较菜,没有这么高的实力简单实现springmvc框架,我是看了一个老哥的博客,这老哥才是大神! 原文链接:https://www.cnblogs.com/xdp-gacl/p/4101727 ...

  5. 搭建一个简单的mybatis框架

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  6. 项目搭建系列之三:SpringMVC框架下使用Ehcache对象、数据缓存

    注明:该文章为以前写的文章,这里只更改了标题,无GitHub源码下载. 一.准备工作 如果已经成功搭建SpringMVC环境,那么就可以进入Ehcache的准备工作了.1.下载jar包    Ehca ...

  7. 搭建一个简单的Struts2框架

    1  创建一个web项目. 2 导入必要的JAR文件. 放在WEB-INF下lib包里. 3 添加web.xml配置,添加启动配置. <?xml version="1.0" ...

  8. 项目搭建系列之四:SpringMVC框架下使用UrlRewrite实现地址重写

    简单记录一下UrlRewrite实现地址重写功能. 1.pom.xml 在pom.xml增加配置UrlRewrite jar <!-- URL Rewrite --> <depend ...

  9. Flutter学习三之搭建一个简单的项目框架

    上一篇文章介绍了Dart的语法的基本使用,从这篇文章开始,开发一个基于玩Android网站的app.使用的他们开放的api来获取网站数据. 根据网站的结构,我们app最外层框架需要添加一个底部导航栏, ...

随机推荐

  1. php中常用的运算符

    运算符 运算符是告诉PHP做相关运算的标识符号. PHP运算符一般分为算术运算符.赋值运算符.比较运算符.三元运算符.逻辑运算符.字符串连接运算符.错误控制运算符. 1.变量名记得加“$” 符: 2. ...

  2. asp中cookie欺骗/注入原理与防范

     一直以来sql注入被广泛关注,也有专门的防注系统代码.发现,如果代码不严谨也会有cookie欺骗/注入的情况.原来, 防注入系统没有注意到 Cookies 的问题!这里以ASP为例,分析一下cook ...

  3. mysql 创建存储过程注意

    最近在利用navicat创建存储过程时,总是报1064语法错误,而且每次都是指向第一行,百思不得姐,如下图: 后来发现,原来是输入参数没有定义长度导致,所以以后真要注意 加上入参长度即可:IN `sT ...

  4. CRM客户关系管理系统修改(十四)

    修改的流程:

  5. HDU 4888 (网络流)

    Poroblem Redraw Beautiful Drawings (HDU4888) 题目大意 一个n行m列的矩形,只能填0~k的数字. 给定各行各列的数字和,判定有无合法的方案数.一解给出方案, ...

  6. 负margin居中

    <!DOCTYPE html><html> <head> <title> new document </title> <meta na ...

  7. 使用WebMatrix发布网站到Windows Azure

    1. 在本地机安装 WebMatrix, 安装Windows Azure SDK 2. 登录Windows Azure, 网站 > 创建一个新网站或选择已有网站 3. 在发布应用程序,选择下载发 ...

  8. MySQL 仅保留7天、一个月数据

    /************************************************************************** * MySQL 仅保留7天.一个月数据 * 说明 ...

  9. 《JS高程》实现继承的6种方式(完整版)

    许多OO语言都支持 两种继承方式: (1)接口继承:只继承方法签名: (2)实现继承:继承实际的方法. ECMAScript 由于函数没有签名,无法实现接口继承,因此只支持实现继承,而且主要是依靠原型 ...

  10. TC Hash Filter

    Overview The u32 filter allows you to match on any bit field within a packet, so it is in some ways ...