Java项目中如何找control层,再问一个,业务层和MVC中Controler(控制器)的关系解决方法...

再问一个,业务层和MVC中Controler(控制器)的关系

本类是同一个问题的,但是在我另外的一个帖子中没有很好的表达出来,真是失败啊。

进入正题:

众所周知,Servlet 和 Struts中的Action是属于MVC中的C(Controler),只是一个控制器,

按说在两者之中是不应该出现业务代码的,它们只是一个控制器,只负责将视图(JSP页面)

取得的数据转发到业务层来处理,然后根据业务层的处理结果来选择相应的视图来显示,

那么在Servlet或者Action中该不该出现判断数据的代码,又如何讲数据传递到业务层呢?

光说太抽象,来点代码:

Java code//假设这是Servlet中的一个方法,来处理用户注册请求的

public void register(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String username = request.getParameter("username");

String password = request.getParameter("password");

String repeatPass = request.getParameter("repeatPass");

//主要下面这段代码该在什么地方

if( password == null || password.length() < 6 ){

//密码长度小于6位,不能注册

response.sendRedirect("some page");

return;

}

if( !password.equals(repeatPass)){

//两次密码不相同,不能注册

response.sendRedirect("some page");

return;

}

//还有一些验证,比如判断用户名是否已存在,等等

//这些代码写在什么地方?这里?还是BO?

UserBo bo = new UserBo();

//是这传递

bo.addUser(new User(username,password));

//还是这样传递?

bo.addUser(username,password);

//forward or redirect

}

------解决方案--------------------

1、数据验证可以放在validate,该过程在xxform.java里

2、如果是简单的业务逻辑放在action也挺方便,复杂的业务逻辑就要写些类来操作,然后在action里调用,再根据处理情况给用户显示相应的view

------解决方案--------------------

封装数据,交给业务层进行处理。

------解决方案--------------------

可以通过请求request啊

也可以同ActionForm获得啊

------解决方案--------------------

业务是在model里,一般是用bean,太简单没有复用价值的放在control里也就行了,我是这样认为的

------解决方案--------------------

Controler是完成Model与View之间交互的

可以具体去看看MVC那个图

------解决方案--------------------

探讨

是不是简单的逻辑可以放到控制器里,复杂的逻辑一定要在业务层完成了啊?

业务层属于MVC中的哪一层?是Controler还是Model?

------解决方案--------------------

顶楼上!

------解决方案--------------------

11楼的换可以

------解决方案--------------------

11 说的不错!

------解决方案--------------------

可以通过请求request啊

也可以同ActionForm获得啊

------解决方案--------------------

上楼的不错!

------解决方案--------------------

up!!!

------解决方案--------------------

------解决方案--------------------

------解决方案--------------------

servlet属于控制器,而控制器的作用就是接收客户端请求,调用相应的模型处理逻辑和数据,再由控制器根据处理的结果,选择相应的JSP或HTML文件响应客户端。所以,我认为,servlet无非就是两个作用,一个是接收用户请求数据,再一个就是完成页面的跳转,而关于如上的if判断语句我觉得应该交给bo,servlet调用bo,返回一个字符串,即目标地址。

------解决方案--------------------

两次输入的密码是否一致,可以放在页面校验。不必到servlet校验。

------解决方案--------------------

up

------解决方案--------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值