深入浅出Java mvc_动力节点Java学院整理

网友投稿 268 2023-04-23


深入浅出Java mvc_动力节点Java学院整理

在DRP中终于接http://触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便。

首先来简单的学习一下MVC的基础知识,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑。

概览

MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中,MVC是分层的思想的体现,但是区别于三层设计模式(区别以后再和大家分享)。

MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是jsP + servlet + javabean的模式。

实例解析

UML图:大家熟悉MVC的调用流程逻辑

第一:JSP:由页面指令和HTML组成的查询界面query_condention.jsp,也就是咱们现在的html页和asp页面类似。

出生日期:

第二:控制层 SearchStudentServlet用来接受客户的请求,来处理流程,调用Model(StudentManager.java),转发到要请求的后台服务器的student_list.jsp页面

import java.text.*;

import java.util.*;

import java.io.*;

import javax.servlet.http.*;

import javax.servlet.*;

import com.bjpowernode.exam.model.*;

import com.bjpowernode.exam.manager.*;

public class SearchStudentServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String sBeginDate = request.getParameter("beginDate");

String sEndDate = request.getParameter("endDate");

Date beginDate = new Date();

Date endDate = new Date();

try {

beginDate = new SimpleDateFormat("yyyy-MM-dd").parse(sBeginDate);

endDate = new SimpleDateFormat("yyyy-MM-dd").parse(sEndDate);

}catch(Exception e) {

e.printStackTrace();

}

StudentManager studentManager = new StudentManagerImpl();

List studentList = studentManager.findStudentList(beginDate, endDate);

//将学生列表设置到requet范围中

//request.setAttribute("student_list", studentList);

//转发,转发是在服务器端转发的,客户端是不知道的

//request.getRequestDispatcher("/student_list.jsp").forward(request, response);

//将studentList放到session中

HttpSession session = request.getSession();

session.setAttribute("student_list", studentList);

//重定向,不会共享request

//以下写法错误,该 "/"代表了8080端口

//response.sendRedirect("/student_list.jsp");

response.sendRedirect(request.getContextPath() + "/student_list.jsp");

}

}

第三:student_list.jsp页面接收数据形成html,返回到浏览器,渲染在界面上

<%@ page language="java" contentType="text/html;charset=GBK"%>

<%@ page import="java.util.*"%>

<%@ page import="java.text.*"%>

<%@ page import="com.bjpowernode.exam.model.*"%>

<%@ page import="com.bjpowernode.exam.manager.*"%>

<%

//List studentList = (List)request.getAttribute("student_list");

List studentList = (List)session.getAttribute("student_list");

for (Iterator iter=studentList.iterator(); iter.hasNext();) {

Student student = iter.next();

%>

<%

long b = 1000L*60L*60L*24L*365L;

long a = System.currentTimeMillis() - student.getBirthday().getTime();

%>

<%

}

%>

在View的student_list.jsp页面中是大量的htwXzalml和java代码的混合,在查询条件界面query_condention.jsp主要是html,因为不涉及后台数据的交互.

第四:xml配置Servlet:

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version="2.4">

SearchStudentServlet

SearchStudentServlet

SearchStudentServlet

/SearchStudentServlet

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version="2.4">

SearchStudentServlet

SearchStudentServlet

SearchStudentServlet

/SearchStudentServlet

第五:显示查询结果

总结

以上query_condention.jsp(输入查询条件)、SearchStudentServlet.java(请求控制Control分)+student_list.jsp(界面显示)的组合相当于三层中的U层,都与界面的显示相关,而StudentManager.java才是进入业务处理相当于三层的B层。故,我们可以简单理解成,MVC就是java基于U层的又一个细化,将界面显示和请求处理做了进一步细化分工。

MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中,MVC是分层的思想的体现,但是区别于三层设计模式(区别以后再和大家分享)。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:中国银联支付网关api(银联在线网关)
下一篇:Java中的抽象工厂模式_动力节点Java学院整理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~