本文说明:本文介绍使用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. Gradle: The New Android Build System

    Gradle: The New Android Build System Google selected Gradle as the foundation of the Android SDK bui ...

  2. 监听Android CTS测试项解决方案(一)

    前言: 首先这里需要详细叙述一下标题中"监听Android CTS测试项解决方案"的需求.这里的需求是指我们需要精确的监听到当前CTS测试正在测试的测试项. 因为我们知道CTS认证 ...

  3. python3爬虫初探(二)之requests

    关于请求网页,不得不提requests这个库,这是爬虫经常用到的一个第三方库,用pip安装即可. requests用法很多,这里只写一些基础的,其他高级功能可参考官方文档. import reques ...

  4. jqGrid详解及高级应用(十四)

    一:jqGrid 是一个用来显示网格数据的jQuery插件,文档比较全面,附带中文版本.  二:官方主页http://www.jqgrid.com/目前最新版本:jqGrid 3.7 Beta在线文档 ...

  5. Functions

    Small The first rule of functions is that they should be small.The second rule of functions is that ...

  6. magento首页调用最新产品

    这个需要我们自己添加一个block块供我们调用,可参考new products的block类,建立文件app/code/core/Mage/Catalog/Block/Product/Special. ...

  7. SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL

    转:http://wudataoge.blog.163.com/blog/static/80073886200961652022389/ 一.WITH AS的含义     WITH AS短语,也叫做子 ...

  8. archlinux安装图形界面

    安装xorg 检查显卡驱动 $ lspci | grep VGA install X server wiki Then use the $ startx to start the X server, ...

  9. 阿里云2003服务器VPN搭建[转自阿里云官方论坛]

    VPN可以应用在很多方面,很多公司只是拿它接入公司内部网络,但我们做安全的需要的是利用它做跳板上网(还有提高网速).这篇文章主要是针对这种应用来说的,包括公网VPN的配置. 服务器配置 前奏:关闭防火 ...

  10. 2分钟读懂Hadoop和Spark的异同

    谈到大数据框架,现在最火的就是Hadoop和Spark,但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,倒底现在业界都在使用哪种技术?二者间究竟有哪些异同?它们各自解决了哪些问题? ...