为了账号安全,请及时绑定邮箱和手机立即绑定

Java零基础入门ssm框架

2017.08.29 17:17 11302浏览
    作为一个无Java基础的程序员,需要在较短时间内投入项目编写,如果从ssm框架的底层原理进行逐步了解学习是不现实,所以在此分享一下我自己对ssm框架的学习过程,以及对ssm框架的粗浅理解。
    首先说一下ssm框架是干嘛的,我对其初步的理解是:接受客户端的操作数据,经过已编写好的逻辑运算规则,操作数据库返回给客户端数据,或返回给客户端视图(一个新的页面)。
    现在来说一下我要表达的重点——ssm框架工作的原理:

客户端发送请求,后台服务器接受到请求首先被控制层(Controller)拦截,根据映射关系调用业务层(Service)的方法,找到逻辑层(ServiceImpl) ,然后通过持久层(Mapper / Dao)获取对象,对数据库进行操作,查询到的结果存储在实体类(Entity)中,最后这个结果数据会被一层一层的返回到客户端。当然如果你只想请求一个简单的页面跳转,直接在控制层返回一个视图就好了!
说道这里,你或许会觉得这个层、那个层的完全没概念,这个没关系的,现在就以一个简单的项目给大家来点实质的感觉。
目录结构:目录结构

现在有一个需求:进入登录页面,在登录页面进行登录操作
第一步:进入到登录页面

package cn.com.dawnpro.demo.controller;

import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import cn.com.dawnpro.demo.entity.User;
import cn.com.dawnpro.demo.service.UserService;
@Controller
public class UserController extends AbstractController{
@Resource
private UserService userService;
@RequestMapping("/toLogin.do")
public String toLogin(){
    return "login";
}
}
    这里就只是一个页面跳转,客户端发送一个请求(127.0.0.1:8080/demo/toLogin.do),服务器端接收到请求,控制层(controller)拦截到"/toLogin.do"这个消息,返回给客户端一个视图(网页界面)"login",当然这个login必须是一个已经存在的.html文件或者.jsp文件。当然这里为啥会拦截"/toLogin.do",以及返回到客户端的具体是.html还是.jsp,这个就看你配置文件里怎么设置了。
    进入到登录页面,我们就可以进行登录操作了。

第二步:登录成功进入到主页
1.控制层(Controller)

@RequestMapping("/login.do")
@ResponseBody
public void login(String mail,String password,HttpSession session,HttpServletRequest request){
    User user=userService.login(mail, password);
    session.setAttribute("user", user.getName());
}

2.业务层(Service)

package cn.com.dawnpro.demo.service;

import java.util.List;
import cn.com.dawnpro.demo.entity.User;

public interface UserService {
   public User login(String mail,String password);
}

3.逻辑层(ServiceImpl)

package cn.com.dawnpro.demo.service;

import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cn.com.dawnpro.demo.dao.UserDao;
import cn.com.dawnpro.demo.entity.User;
@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource
    private UserDao userDao;
    @Override
    public User login(String mail, String password) {
        User user=userDao.findUser(mail,password);
        return user;
    }
}

4.持久层(Mapper / Dao)

package cn.com.dawnpro.demo.dao;

import java.util.List;
import org.springframework.stereotype.Repository;
import cn.com.dawnpro.demo.entity.User;
@Repository
public interface UserDao {
public User findUser(String mail,String password);
}

5.数据库操作配置(mapping.xml)

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"      
 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

<mapper namespace="cn.com.dawnpro.demo.dao.UserDao">
    <select id="findUser"  parameterType="string" resultType="cn.com.dawnpro.demo.entity.User">
    select * from user where mail=#{mail} and password=#{password}
    </select>
</mapper>

6.实体类(Entity)

package cn.com.dawnpro.demo.entity;

import java.io.Serializable;
import java.util.Date;
public class User implements Serializable {
    public int uid;
    public String name;
    public String mail;
    private String password;
        public int getUid()
        return uid;
    }
    public void setUid(int uid) {
        this.uid = uid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getMail() {
        return mail;
    }
    public void setMail(String mail) {
        this.mail = mail;
    }
    public String getPassword(){
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public User(int uid, String name, String mail, String password) {
        super();
        this.uid = uid;
        this.name = name;
        this.mail = mail;
        this.password = password;
    }
        public User() {
        super();
        }
        @Override
        public String toString() {
        return "User [uid=" + uid + ", name=" + name + ", email=" + mail + ", password=" + password + "]";
        }
}
    好了,这基本上就是一个简单请求的ssm框架的基本工作流程了,我这里只要是为了阐述这个工作过程,至于其中复杂的验证过程默认为验证通过,以及相关的配置也是默认已经配好了。
    现在你是不是对ssm框架有了清晰的结构了解呢?如果觉得有帮助的话,请给我一个赞吧!毕竟第一次写手记
点击查看更多内容
100人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
软件测试工程师
慕课专栏 更多
意见反馈 去赚学费 帮助中心 APP下载
官方微信

举报

0/150
提交
取消