springmvc + hibernate构建web工程(二)

5 篇文章 0 订阅
2 篇文章 0 订阅

上篇主要说的是在springMVC构建WEB工程时的一些配置,现在来说说其他部分。

controller

以登录为例如下:

@Controller
public class LoginController {

    private LoginService loginService;

    @Resource
    public void setLoginService(LoginService loginService) {
        this.loginService = loginService;
    }

    @RequestMapping("login.do")
    public ModelAndView login(String username, String password,
            HttpSession session, HttpServletResponse response) {

        HashMap resultMap = new HashMap();

        HashMap result = loginService.checkLogin(username, password);
        if ("true".equals(result.get("code"))) {
            session.setAttribute("user", result.get("user"));
            resultMap.put("code", "true");
            resultMap.put("username", username);
            resultMap.put("password", password);
            return new ModelAndView("admin-index", resultMap);

        } else {
            resultMap.put("code", "false");
            return new ModelAndView("index", resultMap);
        }
    }
}

@Controller: 表示该类是一个controller,也就是action组件, spring不要求我们继承任何controller相关的基类或者引用相关的servlet API。为了使这些声明生效,我们需要在配置文件中添加下面的一行:

<context:component-scan base-package="com.my.xx"/>

@Resource: 用于注入,默认按名称装配,表示将loginService注入到该类中
@RequestMapping:请求映射,表示将login.do为结尾的请求映射到该方法处理

这里面还有一个很常见的@ResponseBody注解,它表示将内容或者对象作为HTTP响应正文返回,并调用适合的HttpMessageConverter的Adapter转换对象,写入输出流。按照上节的配置,会将内容或者对象转换成JSON返回

<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">  
        <property name="supportedMediaTypes">  
            <list>  
                <value>text/html;charset=UTF-8</value>  
            </list>  
        </property>  
    </bean>

Service

在上面,我们注入了loginService,loginService是接口的一个实例

public interface LoginService {

    public HashMap checkLogin(String username, String password);
}
@Service
public class LoginServiceImpl implements LoginService {

    private LoginDao loginDao;
    @Resource
    public void setLoginDao(LoginDao loginDao){
        this.loginDao = loginDao;
    }

    @Transactional
    public HashMap checkLogin(String username, String password){
        HashMap result = loginDao.checkLogin(username, password);

        return result;
    }
}

@Service: 表示service组件
@Transactional: 用于事务管理

Dao

在service中,我们注入了loginDao

public interface LoginDao {

    public HashMap checkLogin(String username, String password);
}
@Repository
public class LoginDaoImpl implements LoginDao {

    private SessionFactory sessionFactory;

    @Resource
    public void setSessionFactory(SessionFactory sessionFactory){
        this.sessionFactory = sessionFactory;
    }

    public HashMap checkLogin(String username, String password){

        HashMap resultMap = new HashMap();
        Session session = sessionFactory.getCurrentSession();

        Query query = session.createQuery("from User where username = ? and password = ?");
        query.setParameter(0, username);
        query.setParameter(1, password);
        List<User> users = query.list();

        if(users.size() > 0){
            resultMap.put("code", "true");
            resultMap.put("user", users.get(0));
        }else{
            resultMap.put("code", "false");
        }

        return resultMap;
    }
}

@Repository: 声明一个Dao组件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值