千家信息网

MVC怎么实现视图层分离

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇内容介绍了"MVC怎么实现视图层分离"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是MVCM
千家信息网最后更新 2025年02月02日MVC怎么实现视图层分离

本篇内容介绍了"MVC怎么实现视图层分离"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

什么是MVC

MVC模式,就是将原本的web代码,按照功能的不同,划分成控制层,视图层和模型层三个层次,以web项目为例,当请求访问时,由控制层负责处理,控制层调用模型层对请求进行处理,最后使用表现层展示出来。

实战

请求页面:(这是用来请求的页面,放出来以供参考)

                                Document        

优质的W3C分类选择

servlet(这里我们用3.0以上版本的servlet,使用注解替代web.xml):

import java.io.*;import javax.servlet.http.*;import javax.servlet.annotation.*;@WebServlet(name = "helloServlet", value = "/hello-servlet")public class HelloServlet extends HttpServlet {    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {        String classname = "";        String url = "";        String element = "";        classname = request.getParameter("class");        if (classname.equals("qd")) {//目前只做前端判定,后期再增加            url = "https://www.yisu.com/courses?direction=2120&tag=0&type=&condition=&order=";            element = "前端微课";        }        response.setContentType("text/html");        response.setCharacterEncoding("utf-8");        PrintWriter out = response.getWriter();        out.println("\n" +                "\n" +                "\n" +                "\t\n" +                "\t\n" +                "\t\n" +                "\tDocument\n" +                "\n" +                "");        out.println("

以下是W3C平台优秀的前端微课介绍,点击链接即可前往

"); out.println("" + element + ""); out.println(""); }}

可以看到,上面的代码使用servlet进行HTML代码的输出,十分的混乱,而且其中夹杂着一些判定(这部分功能应该交给模型层进行处理)。接下来我们将其中的html代码进行剥离,使用jsp来进行页面的输出。

result.jsp(负责返回页面的jsp):

<%@ page contentType="text/html;charset=UTF-8" language="java" %>                Document    <%        String link = (String) request.getAttribute("url");        String text = (String) request.getAttribute("element");    %>    

以下是W3C平台优秀的前端微课介绍,点击链接即可前往

<%= text%>

同时,对servlet进行对应的修改(主要是删除原来的HTML输出代码,将需要传递给页面的数据封装进请求后然后将请求转发给jsp)。

现在的servlet的get方法如下:

 public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {        String classname = "";        String url = "";        String element = "";        classname = request.getParameter("class");        if (classname.equals("qd")) {//目前只做前端判定,后期再增加            url = "https://www.yisu.com/courses?direction=2120&tag=0&type=&condition=&order=";            element = "前端微课";        }        request.setAttribute("url",url);        request.setAttribute("element",element);        RequestDispatcher view = request.getRequestDispatcher("result.jsp");        try {            view.forward(request,response);        } catch (ServletException e) {            e.printStackTrace();        }    }

这样子就完成了视图层的分离了。

"MVC怎么实现视图层分离"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0