Servlet和MVC设计思想
我的理解(或者说记忆)总是很肤浅的,若是本文章有幸被各位大佬阅读,请轻喷~
今天学一点servlet和MVC设计思想,MVC为了降低各层之间的耦合度,弄了比较多的层,每层各司其职。其中M层最轻松,就是一个实体类,里面有属性啊,get/set方法啊,构造方法什么的,就是对业务需求中的实体的对象描述;V层是视图层,表现为JSP页面(听说JSP落伍了,但又好像是必学的?),感觉就是个html+java代码…,总之这层是给用户最直观的感受,无论你后台代码如何写,V层是看不到后台细节的;最重要的就是C控制器层了,它负责接收请求、调用业务、发送响应。
因此在Controller类里面,它需要完成的工作有:
1.接收前端送过来的数据,具体的发送方式有GET和POST,其中两者的区别,我也忘了,大概就是GET是URL地址栏访问,所以不太安全,数据传送大小也有限制(2K字节),POST则是通过form表单的形式将数据发送给后台,因此也比较安全,且现在大多也是通过POST完成请求的。(传进来后把它封装为一个对象user.setUsername(request.getParameter(“userName”)))
2.调用业务方法:这里就有点东西要记了,严格遵循MVC的分层思想。首先控制器类Controller要用多态的方式(UserService userservice = new UserServiceImpl();)来创建一个业务对象,这个业务对象又要调用其中的业务方法(比如通过传入的经过封装后的对象查询,这里起名要见名知意,userservice.queryByUser(user)),然后这个查询的业务方法,又要通过数据访问层(DAO)的实现类去完成数据库的操作。
3.发送响应:也就是页面跳转了吧。
总之就是一幅图:
坚持下去叭。