20.SSM框架集~SSMS大总结之Spring MVC
初识SpringMVC
spring mvc依赖
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-webmvc</ artifactId>
< version> 5.2.2.RELEASE</ version>
</ dependency>
springmvc.xml配置
< context: component-scan base-package = " com.alvin.controller" />
< mvc: annotation-driven/>
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
< web-app>
< display-name> Archetype Created Web Application</ display-name>
< servlet>
< servlet-name> mvc</ servlet-name>
< servlet-class> org.springframework.web.servlet.DispatcherServlet</ servlet-class>
< init-param>
< param-name> contextConfigLocation</ param-name>
< param-value> classpath:springmvc.xml</ param-value>
</ init-param>
< load-on-startup> 1</ load-on-startup>
</ servlet>
< servlet-mapping>
< servlet-name> mvc</ servlet-name>
< url-pattern> /</ url-pattern>
</ servlet-mapping>
</ web-app>
第一个SpringMVC程序
@Controller
public class MyController {
@RequestMapping ( "/show" )
public String hello ( ) {
System. out. println ( "已运行SpringMVC" ) ;
return "redirect:/index.jsp" ;
}
}
将Spring,SpringMVC,Mybatis整合登录,并将内容传送到前台
所需依赖
<?xml version="1.0" encoding="UTF-8"?>
< project xmlns = " http://maven.apache.org/POM/4.0.0" xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation= " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
< modelVersion> 4.0.0</ modelVersion>
< groupId> com.alvin</ groupId>
< artifactId> springMvcInit</ artifactId>
< version> 1.0-SNAPSHOT</ version>
< packaging> war</ packaging>
< properties>
< mysql-version> 8.0.11</ mysql-version>
< mybatis-version> 3.5.2</ mybatis-version>
< spring-version> 5.2.2.RELEASE</ spring-version>
< mybatis-spring-version> 2.0.4</ mybatis-spring-version>
< slf4j-version> 1.7.25</ slf4j-version>
< jstl-version> 1.2</ jstl-version>
< servlet-api-version> 3.1.0</ servlet-api-version>
< jsp-version> 2.2</ jsp-version>
< junit-version> 4.12</ junit-version>
< jackson-version> 2.9.9</ jackson-version>
</ properties>
< dependencies>
< dependency>
< groupId> mysql</ groupId>
< artifactId> mysql-connector-java</ artifactId>
< version> ${mysql-version}</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis</ artifactId>
< version> ${mybatis-version}</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-context</ artifactId>
< version> ${spring-version}</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-jdbc</ artifactId>
< version> ${spring-version}</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-test</ artifactId>
< version> ${spring-version}</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-webmvc</ artifactId>
< version> ${spring-version}</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis-spring</ artifactId>
< version> ${mybatis-spring-version}</ version>
</ dependency>
< dependency>
< groupId> org.slf4j</ groupId>
< artifactId> slf4j-log4j12</ artifactId>
< version> ${slf4j-version}</ version>
</ dependency>
< dependency>
< groupId> jstl</ groupId>
< artifactId> jstl</ artifactId>
< version> ${jstl-version}</ version>
</ dependency>
< dependency>
< groupId> com.fasterxml.jackson.core</ groupId>
< artifactId> jackson-databind</ artifactId>
< version> ${jackson-version}</ version>
</ dependency>
< dependency>
< groupId> javax.servlet</ groupId>
< artifactId> javax.servlet-api</ artifactId>
< version> ${servlet-api-version}</ version>
< scope> provided</ scope>
</ dependency>
< dependency>
< groupId> javax.servlet.jsp</ groupId>
< artifactId> jsp-api</ artifactId>
< version> ${jsp-version}</ version>
< scope> provided</ scope>
</ dependency>
< dependency>
< groupId> junit</ groupId>
< artifactId> junit</ artifactId>
< version> ${junit-version}</ version>
< scope> test</ scope>
</ dependency>
< dependency>
< groupId> org.aspectj</ groupId>
< artifactId> aspectjweaver</ artifactId>
< version> 1.9.4</ version>
</ dependency>
</ dependencies>
< build>
< plugins>
< plugin>
< groupId> org.apache.tomcat.maven</ groupId>
< artifactId> tomcat7-maven-plugin</ artifactId>
< version> 2.2</ version>
< configuration>
< port> 8888</ port>
< path> /</ path>
</ configuration>
</ plugin>
</ plugins>
</ build>
</ project>
配置文件
applicationContext-mybatis.xml
<?xml version="1.0" encoding="UTF8"?>
< 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"
xsi: schemaLocation= " http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd" >
< context: property-placeholder location = " classpath:jdbc.properties" > </ context: property-placeholder>
< bean id = " ds" class = " org.springframework.jdbc.datasource.DriverManagerDataSource" >
< property name = " driverClassName" value = " ${m_driver}" > </ property>
< property name = " url" value = " ${m_url}" > </ property>
< property name = " username" value = " ${m_uname}" > </ property>
< property name = " password" value = " ${m_pwd}" > </ property>
</ bean>
< bean id = " factory" class = " org.mybatis.spring.SqlSessionFactoryBean" >
< property name = " dataSource" ref = " ds" > </ property>
< property name = " typeAliasesPackage" value = " com.alvin.pojo" > </ property>
</ bean>
< bean id = " mapper" class = " org.mybatis.spring.mapper.MapperScannerConfigurer" >
< property name = " sqlSessionFactoryBeanName" value = " factory" > </ property>
< property name = " basePackage" value = " com.alvin.mapper" > </ property>
</ bean>
</ beans>
applicationContext-service.xml
<?xml version="1.0" encoding="UTF8"?>
< 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"
xsi: schemaLocation= " http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd" >
< context: component-scan base-package = " com.alvin.service.impl" > </ context: component-scan>
</ beans>
springmvc.xml
<?xml version="1.0" encoding="UTF8"?>
< 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
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd" >
< context: component-scan base-package = " com.alvin.controller" > </ context: component-scan>
< mvc: annotation-driven> </ mvc: annotation-driven>
< mvc: resources mapping = " /img/**" location = " /img/" > </ mvc: resources>
< mvc: resources mapping = " /css/**" location = " /css/" > </ mvc: resources>
< mvc: resources mapping = " /js/**" location = " /js/" > </ mvc: resources>
</ beans>
代码
Controller
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping ( "/findAllUser" )
@ResponseBody
public List< User> findAllUser ( Integer son, String password) {
User user = userService. Login ( son, password) ;
if ( user != null) {
return userService. findAll ( ) ;
} else {
return null;
}
}
}
Service
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List< User> findAll ( ) {
return userMapper. selectAll ( ) ;
}
@Override
public User Login ( Integer son, String password) {
return userMapper. Login ( son, password) ;
}
}
Mapper
public interface UserMapper {
@Select ( "select * from student" )
List< User> selectAll ( ) ;
@Select ( "select * from student where son = #{param1} and password = #{param2}" )
User Login ( Integer son, String password) ;
}
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
< web-app>
< context-param>
< param-name> contextConfigLocation</ param-name>
< param-value> classpath:applicationContext-*.xml</ param-value>
</ context-param>
< filter>
< filter-name> enc</ 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>
</ filter>
< filter-mapping>
< filter-name> enc</ filter-name>
< url-pattern> /*</ url-pattern>
</ filter-mapping>
< listener>
< listener-class> org.springframework.web.context.ContextLoaderListener</ listener-class>
</ listener>
< 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:springmvc.xml</ param-value>
</ init-param>
< load-on-startup> 0</ load-on-startup>
</ servlet>
< servlet-mapping>
< servlet-name> springmvc</ servlet-name>
< url-pattern> /</ url-pattern>
</ servlet-mapping>
</ web-app>