前边已经介绍过了Struts在Idea上的配置,相对于Struts来讲,我以为SpringMVC有更多的优点,首先Struts是须要对action进行配置,页面发送不一样的请求,就须要配置不一样的action,并在每一个action中指定对应的结果集,而后进行页面跳转,固然这也是符合逻辑的,可是当要开发一个大的项目,会有不少请求,若是每一个请求都要对应一个action,这样会比较繁琐,但对于SpringMVC来讲,不用配置多个action,并且SpringMVC框架与Spring有很好的对接,这两个框架能够实现无缝对接,下边就给你们详细介绍一下SpringMVC配置。html
对于Struts框架,你们能够参考:http://www.cnblogs.com/wyyDemoTest/p/8676782.html
java
1、环境搭建(File-->New-->Project-->Spring,选中SpringMVC,其余默认,点击Next)web
2、填写项目名字,建立项目完成,整个项目环境大部分已经完成spring
3、项目配置spring-mvc
你们先看一下整个的项目目录服务器
其实,SpringMVC的配置很简单的,下边分步骤给你们接收一下,怎样配置,在作下边的配置以前,你们还须要配置服务器,详细的介绍你们能够参考Struts框架怎样配置服务器:mvc
http://www.cnblogs.com/wyyDemoTest/p/8676782.htmlapp
1 首先先要配置index.jsp页面,代码以下,主要是页面发送请求,到达服务器,进行后续逻辑判断:框架
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登陆页面</title> </head> <body> <form action="${pageContext.request.contextPath}/test/demo" method="post" > username:<input type="text" required="required" name="username"/><br> password:<input type="password" required="required" name="password"/><br> <input type="submit" value="提交"><br> </form> </body> </html>
2 配置web.xml文件,通常若是是运用Idea开发工具进行SpringMVC框架开发的话,系统会自动配置该配置文件,可是也须要进行相应的修改,尤为是url:jsp
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <!--<listener> <listener-class>com.listener</listener-class> </listener>--> <!--配置Spring--> <!--配置SpringMVC--> <servlet> <servlet-name>spring-mvc</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>spring-mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
3 配置spring-mvc-servlet.xml,须要注意的是,有两种方法对该文件进行配置,主要是该文件的文件名“spring-mvc-servlet.xml”
方法① 若是是按照步骤2中的代码进行配置,则该配置文件的名字必须是spring-mvc-servlet.xml,其中“spring-mvc”是web.xml文件中的servlet name,这两个名字必须一一对应:xxx-servlet.xml,这样作的缘由是框架会自动去寻找该配置文件,通常我采用第二种方法
方法② 其实该方法也很简单,就是在配置文件中添加初始化参数
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <!--<listener> <listener-class>com.listener</listener-class> </listener>--> <!--配置Spring--> <!--配置SpringMVC--> <servlet> <servlet-name>demo</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-mvc-servlet.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>demo</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
该方法不用指定servlet的name与配置文件的名字一致,只须要指定相应的文件便可。
下边是该配置文件的内容,我用的是注解的方法
<?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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.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.xsd"> <!--自动扫描--> <context:component-scan base-package="com"/> <!-- 静态资源(js、image等)的访问 --> <mvc:default-servlet-handler/> <!-- 开启注解 --> <mvc:annotation-driven/> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
4 配置控制器
package com; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; /** * Created by admin on 2018/3/26. */ @Controller @RequestMapping("/test") public class HelloController { @RequestMapping(value = "/demo",method= RequestMethod.POST) public String test(@RequestParam("username") String username, @RequestParam("password") String password, Model model){ model.addAttribute("name",username); model.addAttribute("password",password); model.addAttribute("test","123456"); return "hello"; } }
须要注意的是该配置器指定的@RequestMapping,必须和index.jsp的请求一致,这样才会到达该控制器,而后对数据进行逻辑判断,固然你们能够看一下控制器是如何获取前台页面数据,当拿到前台页面数据之后,能够对数据进行处理,增删改查逻辑判断,知足条件之后怎样处理,页面跳转携带数据,把数据保存在Model对象中,前台页面经过el获取数据。
5 hello.jsp,主要是显示数据,在步骤4 中返回的字符串对应指定的字符串.jsp页面,这样整个流程都完成了
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>测试</title>
</head>
<body> ${name},${password} </body>
</html>