话不多说,代码吧。
首先,需要导入的jar包有(当然根据实际需要还要添加其他的一些jar包):见附件。其实这些jar包也没什么,主要就是spring的那些beans,core,expression,context,web,webmvc以及加上commons-logging的日志记录包即可
配置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">
<!-- 编码集的过滤器(只对post请求起作用) -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 在页面需要引入js,css或者图片等时,需进行如下配置 -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<display-name>test2</display-name>
<!-- 配置DispatcherServlet的映射,并在tomcat启动时启动 -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
配置[servlet-name的名称]-servlet.xml文件,配置如下:
<?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:p="http://www.springframework.org/schema/p"
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-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!-- 打开springmvc控制层(controller)对注解的支持(cn.bdx.controller表示是哪个包对注解的支持) -->
<context:component-scan base-package="cn.bdx.controller"></context:component-scan>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
其中[servlet-name的名称]即为web.xml文件中配置的DispatcherServlet类对应的servlet-name的值,在这里为"SpringMVC"。上面的web.xml文件的配置之后这个SpringMVC-servlet.xml文件必须配置在WEB-INF目录下面,如果需要更改这个配置文件(SpringMVC-servlet.xml)的位置,则需要在web.xml文件修改DispatcherServlet类映射的内容,修改后的内容如下:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:*-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这样SpringMVC-servlet.xml文件就可以配置在src目录下面了。
控制层controller层:
package cn.bdx.controller;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import cn.bdx.exception.ServiceException;
import cn.bdx.model.User;
import cn.bdx.service.impl.UserServiceImpl;
import cn.bdx.service.intf.UserService;
@Controller//该注解说明该类为springmvc的控制类
@RequestMapping("/user")//该类的访问路径
public class UserController {
@RequestMapping("/add")//该方法的访问路径
public ModelAndView add(User user,ModelMap model) {
UserService userService = new UserServiceImpl();
boolean flag = false;
try {
flag = userService.add(user);
} catch (ServiceException e) {
e.printStackTrace();
}
model.put("flag", flag);
return new ModelAndView("addUser",model);//返回类型,addUser表示的将返回到哪个页面,model为将传递到该页面的参数
}
@RequestMapping("/query")
public ModelAndView query(ModelMap model) {
UserService userService = new UserServiceImpl();
try {
List<User> userList = userService.query();
model.put("userList", userList);
} catch (ServiceException e) {
e.printStackTrace();
}
return new ModelAndView("queryUser", model);
}
}
项目目录:见附件
启动tomcat,访问:http://localhost:8080/springmvc_test2/user/add