欢迎来到Jsp编程课时十一:JSP第十九课,运用MVC三层架构。进行逻辑的处理与判断。实现的目标:是将数据库的表中信息,在浏览器中能展现出来。
本项目会运用到ServlectJspmysqlhtmlcss3.MVC三层架构采用了几种架包。
第一部分:解释MVC架构的名称。
MVC全名是Model View Controller,<br>
是
@@1模型(model)<br>
@@2-视图(view)<br>
@@3-控制器(controller)的缩写,<br>
一种软件设计典范,<br>
用一种业务逻辑、数据、界面显示分离的方法组织代码,<br>
将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,<br>
不需要重新编写业务逻辑。<br>
MVC被独特的发展起来用于映射传统<br>
的输入、处理和输出功能在一个逻辑<br>
的图形化用户界面的结构中。<br>
之前说的课都是为这一章坐下伏笔的。
首先看项目结构图
第一部分是src下要建的类名和包名。
第二部分运行结果图的展示。
注册失败后返回的页面如上图所示。
成功后跳到登录页面
登录成功的页面展示
这又是整个项目的流程展示内容。
第三部分:MVC三层架构的图解。
代码模块
package com.student.controller; import java.io.IOException; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.student.service.IStudentService; import com.student.service.StudentServiceImp; /** * Servlet implementation class HomeServlet */ @WebServlet("/HomeServlet") public class HomeServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public HomeServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //将浏览器的任务接收,发给业务逻辑层处理 IStudentService service=new StudentServiceImp(); List<Map<String, Object>> oList=service.getStudents(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
package com.student.service; /** * 业务逻辑层处理学生表功能的接口 * @author admin * */ import java.util.List; import java.util.Map; public interface IStudentService { //获取数据库中学生表中的所有学生信息 List<Map<String, Object>> getStudents(); }
package com.student.service; import java.util.List; import java.util.Map; import com.student.dao.IStudentDao; import com.student.dao.StudentDaoImp; /** * 业务逻辑层操作学生表功能的实现类 * @author admin * */ public class StudentServiceImp implements IStudentService { @Override public List<Map<String, Object>> getStudents() { IStudentDao dao=new StudentDaoImp(); return dao.getStudents(); } }
package com.student.dao; /** * 数据访问层操作学生表的接口 * @author admin * */ import java.util.List; import java.util.Map; public interface IStudentDao { //接收业务逻辑层的任务,查询出所有学生信息 List<Map<String, Object>> getStudents(); }
package com.student.dao; import java.util.List; import java.util.Map; import org.junit.Test; import com.student.utils.DBUtil; /** * 数据访问操作学生表的实现类 * @author admin * */ public class StudentDaoImp implements IStudentDao { @Override public List<Map<String, Object>> getStudents() { String sql="select * from tb_student2"; return DBUtil.jt.queryForList(sql); } }
上面图解的代码在下面。