spring mvc和boot区别 4和3的区别

查看:38039|回复:6
助理工程师
本帖参与全民原创月活动:
使用Spring MVC 4构建RESTful服务相对于其它框架来说,有很多优势。首先,Spring MVC 4作为Spring的框架之一,可以很好地与Spring进行集成。其次,Spring MVC 4的拦截器是在方法层级上的拦截,相对于其它MVC框架(如Struts2)的拦截器具有更高的效率。再者,Spring MVC 4采用基于注解的配置,入手容易,开发灵活。
& & Spring MVC 4采用的是jacson解析JSON。jacson一款非常高效强大的JSON工具类,可以轻松地在JAVA对象与json对象和XML文档之间进行序列化和反序列化。本文中的例子采用的是Spring 4.1.1.RELEASE和jacson 2.4.0版本,经测试无任何异常。接下来,上干货:
& & 开发环境准备:
& && &&&Eclipse Luna
& && &&&Apache Tomcat 8.0
& && &&&JDK 1.7
& && &&&Spring 4.1.1.RELEASE
& && &&&jackson 2.4.0
& & 工程目录如下:
& & 1. 新建Maven Project,选择在“Archetype类型”中,选择“maven-archetype-webapp”。
& & 2. 在Pom.xml中添加
Maven 依赖,从而可以使用 Spring和jackson中的特性。如果读者使用的是Dynamic Web Project,可以从Maven仓库下载对的Spring Jar和 jacson jar。
& & Spring的Maven仓库地址:
& & jackson的Maven仓库地址:
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 &&
&&&modelVersion&4.0.0&/modelVersion&
&&&groupId&com.favccxx.favsoft&/groupId&
&&&artifactId&favspringmvcrestful&/artifactId&
&&&packaging&war&/packaging&
&&&version&0.0.1-SNAPSHOT&/version&
&&&name&favspringmvcrestful Maven Webapp&/name&
&&&url&&/url&
&&&properties&
& && &&spring.version&4.1.1.RELEASE&/spring.version&
& && &&jackson.version&2.4.0&/jackson.version&
&&&/properties&
&&&dependencies&
& & &dependency&
& && &&groupId&junit&/groupId&
& && &&artifactId&junit&/artifactId&
& && &&version&3.8.1&/version&
& && &&scope&test&/scope&
& & &/dependency&
& & &dependency&
& && &&&&groupId&org.springframework&/groupId&
& && &&&&artifactId&spring-core&/artifactId&
& && &&&&version&${spring.version}&/version&
& & &/dependency&
& & &dependency&
& && &&&&groupId&org.springframework&/groupId&
& && &&&&artifactId&spring-webmvc&/artifactId&
& && &&&&version&${spring.version}&/version&
& & &/dependency&
& & &dependency&
& && &&&&groupId&org.springframework&/groupId&
& && &&&&artifactId&spring-beans&/artifactId&
& && &&&&version&${spring.version}&/version&
& & &/dependency&
& & &dependency&
& && &&&&groupId&org.springframework&/groupId&
& && &&&&artifactId&spring-context&/artifactId&
& && &&&&version&${spring.version}&/version&
& & &/dependency&
& & &dependency&
& && &&groupId&com.fasterxml.jackson.core&/groupId&
& && &&artifactId&jackson-core&/artifactId&
& && &&version&${jackson.version}&/version&
& & &/dependency&
& & &dependency&
& && &&groupId&com.fasterxml.jackson.core&/groupId&
& && &&artifactId&jackson-annotations&/artifactId&
& && &&version&${jackson.version}&/version&
& & &/dependency&
& & &dependency&
& && &&groupId&com.fasterxml.jackson.core&/groupId&
& && &&artifactId&jackson-databind&/artifactId&
& && &&version&${jackson.version}&/version&
& & &/dependency&
& & &dependency&
& && &&&&groupId&jstl&/groupId&
& && &&&&artifactId&jstl&/artifactId&
& && &&&&version&1.2&/version&
& & &/dependency&
& & &dependency&
& && &&&&groupId&taglibs&/groupId&
& && &&&&artifactId&standard&/artifactId&
& && &&&&version&1.1.2&/version&
& & &/dependency&
&&&/dependencies&
& & &finalName&favspringmvcrestful&/finalName&
&&&/build&
&/project&
3.在 web.xml中,配置Spring MVC 4 的DispatcherServlet转发和编码。
&?xml version=&1.0& encoding=&UTF-8&?&
&web-app version=&2.4& xmlns=&/xml/ns/j2ee&
& & xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
& & xsi:schemaLocation=&/xml/ns/j2ee
& & /xml/ns/j2ee/web-app_2_4.xsd&&
& & &display-name&favblog&/display-name&
& & &context-param&
& && &&&&param-name&contextConfigLocation&/param-name&
& && &&&&param-value&&/param-value&
& & &/context-param&
& & &filter&
& && &&&&filter-name&encodingFilter&/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&encodingFilter&/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*:spring-context.xml&/param-value&
& && &&&&/init-param&
& && &&&&load-on-startup&1&/load-on-startup&
& & &/servlet&
& & &servlet-mapping&
& && &&&&servlet-name&springMVC&/servlet-name&
& && &&&&url-pattern&/&/url-pattern&
& & &/servlet-mapping&
&/web-app&
&?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/context
& && &&&http://www.springframework.org/schema/mvc &&
& & &context:component-scan base-package=&com.favccxx.favsoft.favjson.controller&&&/context:component-scan&
& & &mvc:annotation-driven&&/mvc:annotation-driven&
& & &bean id=&viewResolver& class=&org.springframework.web.servlet.view.UrlBasedViewResolver&&
& && &&&&property name=&viewClass&
& && && && &value=&org.springframework.web.servlet.view.JstlView& /&
& && &&&&property name=&prefix& value=&/WEB-INF/views& /&
& && &&&&property name=&suffix& value=&.jsp& /&
& & &/bean&
4.新建 FavUser.java 类,测试JSON与Object之间的映射。需要注意的是,如果想对日期进行格式化,在其Getter方法上,使用 @JsonFormat 即可,这样就能输出符合pattern类型的日期,但是这同时也要求输入的日期参数也必须是pattern类型的。
package com.favccxx.favsoft.favjson.
import java.util.D
import com.fasterxml.jackson.annotation.JsonF
public class FavUser {
& & private String userId;
& & private String userN
& & private int userA
& & private Date createD
& & public String getUserId() {
& && &&&return userId;
& & public void setUserId(String userId) {
& && &&&this.userId = userId;
& & public String getUserName() {
& && &&&return userN
& & public void setUserName(String userName) {
& && &&&this.userName = userN
& & public int getUserAge() {
& && &&&return userA
& & public void setUserAge(int userAge) {
& && &&&this.userAge = userA
& & @JsonFormat(pattern=&yyyy-MM-dd HH:mm:ss&)
& & public Date getCreateDate() {
& && &&&return createD
& & public void setCreateDate(Date createDate) {
& && &&&this.createDate = createD
5. 新建FavRestfulController,通过不同的方法测试Spring MVC 4 返回String、Object类型的JSON。
package com.favccxx.favsoft.favjson.
import java.io.IOE
import org.springframework.web.bind.annotation.RequestB
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestP
import org.springframework.web.bind.annotation.RestC
import com.fasterxml.jackson.core.JsonParseE
import com.fasterxml.jackson.databind.JsonMappingE
import com.fasterxml.jackson.databind.ObjectM
import com.favccxx.favsoft.favjson.pojo.FavU
@RestController
public class FavRestfulController {
& & @RequestMapping(value=&/getUserName&,method=RequestMethod.POST)
& & public String getUserName(@RequestParam(value=&name&) String name){
& & @RequestMapping(&getFavUser&)
& & public FavUser getFavUser(@RequestParam(&userName&) String userName,String userId,int userAge){
& && &&&FavUser favUser = new FavUser();
& && &&&favUser.setUserId(userId);
& && &&&favUser.setUserName(userName);
& && &&&favUser.setUserAge(userAge);
& && &&&return favU
& & @RequestMapping(&getFavUserBody&)
& & public FavUser getFavUserBody(@RequestBody String body){
& && &&&ObjectMapper mapper = new ObjectMapper();
& && &&&FavUser favUser =
& && &&&try {
& && && && &favUser = mapper.readValue(body,&&FavUser.class);
& && &&&} catch (JsonParseException e) {
& && && && &e.printStackTrace();
& && &&&} catch (JsonMappingException e) {
& && && && &e.printStackTrace();
& && &&&} catch (IOException e) {
& && && && &e.printStackTrace();
& && &&&return favU
6.运行结果如下:
感谢分享、、、学习啦
太阳光芒万丈却不及蜡烛只为一人照亮、、、
助理工程师
引用:原帖由 IT妖姬 于
22:14 发表
感谢分享、、、学习啦 共同分享,互相学习
你好,问下使用跟你类似的方法,在ajax调用的时候无法返回数据,能帮忙解答下吗?qq
你这个测试界面是一个工具吗?
/thread-.html
你好,拜读了您的这个帖子,请问最后的测试页面是什么工具吗?
助理工程师
引用:原帖由 icedir 于
16:48 发表
/thread-.html
你好,拜读了您的这个帖子,请问最后的测试页面是什么工具吗? RestClient,Firefox的一个插件1523人阅读
Java开发(37)
首先在整合这个框架的时候,想想其一般的步骤是怎样的,先有个步骤之后,不至于在后面的搞混了,这样在整合的时候也比较清晰些。
然后我们就细细的一步一步来整合。
1 &创建一个Web项目。
2 &导入Mybatis3、Spring4、SpringMVC4、连接数据库(我使用的数据库是mysql)的jar包。
&我所用的包:
&spring-websocket-4.2.0.RELEASE.jar
3 &创建Mybatis3、Spring4、SpringMVC4、连接数据库的配置文件。
4 &配置web.xml&
1 &?xml version=&1.0& encoding=&UTF-8&?&
2 &web-app version=&2.5&
xmlns=&/xml/ns/javaee&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xsi:schemaLocation=&/xml/ns/javaee
/xml/ns/javaee/web-app_2_5.xsd&&
&!-- 告知javaEE容器,有哪些内容需要添加到上下文中去 --&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&
/WEB-INF/classes/applicationContext.xml,
&!-- /WEB-INF/classes/mvc-servlet.xml --&
&/param-value&
&/context-param&
&!-- 加载LOG4J --&
&context-param&
&param-name&log4jConfigLocation&/param-name&
&param-value&/WEB-INF/log4j.xml&/param-value&
&/context-param&
&context-param&
&param-name&log4jRefreshInterval&/param-name&
&param-value&60000&/param-value&
&/context-param&
&!-- 动态设置项目的运行路径 --&
&context-param&
&param-name&webAppRootKey&/param-name&
&param-value&ssm.root&/param-value&
&/context-param&
&!-- 配置静态资源 --&
&servlet-mapping&
&servlet-name&default&/servlet-name&
&url-pattern&/static/*&/url-pattern&
&/servlet-mapping&
&!-- 配置springmvc的前端控制器 --&
&servlet-name&mvc&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&!-- 默认情况下:DispatcherServlet会寻找WEB-INF下,命名规范为[servlet-name]-servlet.xml文件。如:在上例中,它就会找/WEB-INF/spring-servlet.xml
如果需要修改,需要在web.xml中的&servlet&标记中增加 &init-param&。。。
&/init-param&:--&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&/WEB-INF/classes/mvc-servlet.xml&/param-value&
&/init-param&
&/servlet&
&servlet-mapping&
&servlet-name&mvc&/servlet-name&
&url-pattern&/&/url-pattern&
&/servlet-mapping&
&!-- spring框架提供的字符集过滤器 --&
&!-- spring Web MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题
&filter-name&encodingFilter&/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&
&!-- force强制,促使 --&
&init-param&
&param-name&forceEncoding&/param-name&
&param-value&true&/param-value&
&/init-param&
&filter-mapping&
&filter-name&encodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&!-- 登录过滤器--&
&filter-name&loginFilter&/filter-name&
&filter-class&com.cy.ssm.filter.LoginFilter&/filter-class&
&filter-mapping&
&filter-name&loginFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&!-- 监听器 --&
&listener&
&listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class&
&/listener&
&listener&
&listener-class&org.springframework.web.util.Log4jConfigListener&/listener-class&
&/listener&
&welcome-file-list&
&welcome-file&index.jsp&/welcome-file&
&/welcome-file-list&
99 &/web-app&
5&datasource.properties 连接数据库
1 jdbc.driver=com.mysql.jdbc.Driver
2 jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8
3 jdbc.username=root
4 jdbc.password=root
6 mybatis.cfg.xml文件
&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE configuration PUBLIC &-//mybatis.org/DTD Config 3.0//EN&
&http://mybatis.org/dtd/mybatis-3-config.dtd& &
&configuration&
&/configuration&
7 &mvc-servlet.xml
1 &?xml version=&1.0& encoding=&UTF-8&?&
2 &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
6 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
7 http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
8 http://www.springframework.org/schema/mvc
9 http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd&&
&!-- 启动注解,注册服务,如验证框架、全局类型转换器--&
&mvc:annotation-driven/&
&!-- 启动自动扫描 --&
&context:component-scan base-package=&com.cy.ssm&&
&!-- 制定扫包规则 ,只扫描使用@Controller注解的JAVA类 --&
&context:include-filter type=&annotation& expression=&org.springframework.stereotype.Controller&/&
&/context:component-scan&
&!-- 配置视图解析器 --&
prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),
比如传进来的逻辑视图名为WEB-INF/jsp/hello,则该该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”; --&
&bean class=&org.springframework.web.servlet.view.UrlBasedViewResolver&&
&property name=&viewClass& value=&org.springframework.web.servlet.view.JstlView&&&/property&
&property name=&prefix& value=&/&&&/property& &!-- 我这里的视图直接放在WebRoot下的 --&
&property name=&suffix& value=&.jsp&&&/property&
31 &/beans&
&8 applicationContext.xml
1 &?xml version=&1.0& encoding=&UTF-8&?&
2 &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:aop=&http://www.springframework.org/schema/aop& xmlns:tx=&http://www.springframework.org/schema/tx&
xsi:schemaLocation=&http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd&&
&!-- 开启自动扫包 --&
&context:component-scan base-package=&com.cy.ssm&&
&!--制定扫包规则,不扫描@Controller注解的JAVA类,其他的还是要扫描
&context:exclude-filter type=&annotation& expression=&org.springframework.stereotype.Controller&/&
&/context:component-scan&
&!-- 启动AOP支持 --&
&aop:aspectj-autoproxy/&
&!-- 引入外部数据源配置信息 --&
&bean class=&org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&&
&property name=&locations&&
&value&classpath:datasource.properties&/value&
&/property&
&!-- 配置数据源 --&
&bean id=&dataSource& class=&org.springframework.jdbc.datasource.DriverManagerDataSource&&
&property name=&driverClassName& value=&${jdbc.driver}&&&/property&
&property name=&url& value=&${jdbc.url}&&&/property&
&property name=&username& value=&${jdbc.username}&&&/property&
&property name=&password& value=&${jdbc.password}&&&/property&
&!-- 配置Session工厂 --&
&bean id=&sqlSessionFactory& class=&org.mybatis.spring.SqlSessionFactoryBean&&
&property name=&dataSource& ref=&dataSource&&&/property&
&!-- 加载mybatis.cfg.xml文件 --&
&property name=&configLocation& value=&classpath:mybatis.cfg.xml&&&/property&
&!-- 自动扫描需要定义类别名的包,将包内的JAVA类的类名作为类别名 --&
&property name=&typeAliasesPackage& value=&com.cy.ssm.beans&&&/property&
&!-- 自动扫描所有的Mapper接口与文件 --&
&bean class=&org.mybatis.spring.mapper.MapperScannerConfigurer&&
&property name=&basePackage& value=&com.cy.ssm.mapper&&&/property&
&!-- 配置事务管理器 --&
&bean id=&txManager&
class=&org.springframework.jdbc.datasource.DataSourceTransactionManager&&
&property name=&dataSource& ref=&dataSource&&&/property&
&!-- 定义个通知,指定事务管理器 --&
&tx:advice id=&txAdvice& transaction-manager=&txManager&&
&tx:attributes&
&tx:method name=&delete*& propagation=&REQUIRED& read-only=&false&
rollback-for=&java.lang.Exception& /&
&tx:method name=&save*& propagation=&REQUIRED& read-only=&false&
rollback-for=&java.lang.Exception& /&
&tx:method name=&insert*& propagation=&REQUIRED& read-only=&false&
rollback-for=&java.lang.Exception& /&
&tx:method name=&update*& propagation=&REQUIRED& read-only=&false&
rollback-for=&java.lang.Exception& /&
&tx:method name=&load*& propagation=&SUPPORTS& read-only=&true&/&
&tx:method name=&find*& propagation=&SUPPORTS& read-only=&true&/&
&tx:method name=&search*& propagation=&SUPPORTS& read-only=&true&/&
&tx:method name=&select*& propagation=&SUPPORTS& read-only=&true&/&
&tx:method name=&get*& propagation=&SUPPORTS& read-only=&true&/&
&/tx:attributes&
&/tx:advice&
&aop:config&
&!-- 配置一个切入点 --&
&aop:pointcut id=&serviceMethods& expression=&execution(* com.cy.ssm.service.impl.*ServiceImpl.*(..))& /&
&aop:advisor advice-ref=&txAdvice& pointcut-ref=&serviceMethods& /&
&/aop:config&
85 &/beans&
&9 &配置文件都差不多配置好了,接下来就写个测试的。
&UserBean.java
1 package com.cy.ssm.
3 import java.io.S
5 public class UserBean implements Serializable {
private static final long serialVersionUID = -0221059L;
public UserBean() {
// TODO Auto-generated constructor stub
public UserBean(Integer id, String username, String password, Double account) {
this.username =
this.password =
this.account =
public Integer getId() {
public void setId(Integer id) {
public String getUsername() {
public void setUsername(String username) {
this.username =
public String getPassword() {
public void setPassword(String password) {
this.password =
public Double getAccount() {
public void setAccount(Double account) {
this.account =
public String toString() {
return &UserBean [account=& + account + &, id=& + id + &, password=&
+ password + &, username=& + username + &]&;
&UserMapper.java
UserMapper.xml
1 &?xml version=&1.0& encoding=&UTF-8&?&
2 &!DOCTYPE mapper PUBLIC &-//mybatis.org/DTD Mapper 3.0& &http://mybatis.org/dtd/mybatis-3-mapper.dtd&&
3 &mapper namespace=&com.cy.ssm.mapper.UserMapper&&
4 &!-- 自定义返回结果集 --&
&resultMap id=&userMap& type=&UserBean&&
&id property=&id& column=&id& javaType=&java.lang.Integer&&&/id&
&result property=&username& column=&username& javaType=&java.lang.String&&&/result&
&result property=&password& column=&password& javaType=&java.lang.String&&&/result&
&result property=&account& column=&account& javaType=&java.lang.Double&&&/result&
&/resultMap&
&!-- 批量操作和foreach标签 --&
&insert id=&batchInsertUser& parameterType=&java.util.List&&
insert into t_user values
&foreach collection=&users& item=&users& separator=&,&&
(null,#{users.username},#{users.password},#{users.account})
&/foreach&
&delete id=&batchDeleteUser&&
delete from t_user where id in (
&foreach collection=&list& item=&list& separator=&,&&
&/foreach&
&!--collection 为用于遍历的元素(必选),支持数组、List、Set
&!-- item 表示集合中每一个元素进行迭代时的别名. --&
&!--separator表示在每次进行迭代之间以什么符号作为分隔 符.
&!--#在生成SQL时,对于字符类型参数,会拼装引号
$在生成SQL时,不会拼装引号,可用于order by之类的参数拼装
&select id=&pagerUser& parameterType=&java.util.Map& resultMap=&userMap&&
select * from t_user where 1=1
&if test=&username!=null&&
and username like '%${username}%'
limit ${index},${pageSize}
&select id=&countUser& parameterType=&java.util.Map& resultType=&int&&
select count(*) from t_user where 1=1
&if test=&username != null&&
and username like '%${username}%'
52 &/mapper&
ILoginService.java
1 package com.cy.ssm.
4 import com.cy.ssm.beans.UserB
6 public interface ILoginService {
public UserBean Login(String username,String password);
LoginServiceImpl.java
1 package com.cy.ssm.service.
3 import javax.annotation.R
5 import org.springframework.stereotype.S
7 import com.cy.ssm.mapper.UserM
8 import com.cy.ssm.beans.UserB
9 import com.cy.ssm.service.ILoginS
10 @Service
11 public class LoginServiceImpl implements ILoginService{
private UserM
public UserBean Login(String username, String password) {
return um.login(username, password);
LoginController .java
1 package com.cy.ssm.
4 import javax.annotation.R
5 import javax.servlet.http.HttpServletR
7 import org.apache.log4j.L
8 import org.springframework.stereotype.C
9 import org.springframework.web.bind.annotation.RequestM
10 import org.springframework.web.servlet.ModelAndV
12 import com.cy.ssm.beans.UserB
13 import com.cy.ssm.service.ILoginS
17 @Controller
18 public class LoginController {
private Logger log = Logger.getLogger(this.getClass());
private ILoginService loginServiceI
@RequestMapping(&/login&)
public ModelAndView login(HttpServletRequest req,UserBean user){
ModelAndView mv = new ModelAndView();
UserBean u=loginServiceImpl.Login(user.getUsername(), user.getPassword());
if(u != null){
req.getSession().setAttribute(&user&, u);
mv.addObject(&password&, u.getPassword());
System.out.println(u.getPassword());
mv.setViewName(&index&);
&jsp页面;
&form action=&&%=basePath%&login& method=&post&&
&input type=&text& name=&username&/&
&input type=&text& name=&password&/&
&input type=&submit& value=&提交&/&
&index.jsp
& &${password }
整体大概就这样了!
我把整个文件上传到:
继续我的作业了!
每件事都需要坚持!
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:218201次
积分:3100
积分:3100
排名:第11090名
原创:66篇
转载:198篇
评论:58条
文章:30篇
阅读:76150
文章:61篇
阅读:21210
文章:16篇
阅读:50171
文章:160篇
阅读:181823
(5)(6)(3)(1)(3)(23)(7)(21)(11)(3)(11)(11)(15)(15)(33)(22)(45)(29)

我要回帖

更多关于 springmvc与ssh的区别 的文章

 

随机推荐