欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSP中的MVC开发模式

程序员文章站 2022-06-22 08:06:08
原文链接:http://www.yiidian.com/jsp/jsp mvc model.html 1 什么是MVC模式 MVC,代表模型(Model),视图(View),控制器(Controller)。这是一种将业务逻辑,表现逻辑和数据分开的设计模式。 充当视图和模型之间的接口。控制器拦截所有传 ......

原文链接:

1 什么是mvc模式

mvc,代表模型(model),视图(view),控制器(controller)。这是一种将业务逻辑,表现逻辑和数据分开的设计模式。

控制器充当视图和模型之间的接口。控制器拦截所有传入的请求。

模型代表应用程序的状态,即数据。它还可以具有业务逻辑。

视图即ui(用户界面)。

2 mvc(model2)模式的优势

多个视图共享一个模型,大大提高代码的可重用性。
易于维护的大型应用程序

JSP中的MVC开发模式

3 mvc模式的示例

在下面的示例中,我们使用servlet作为控制器,使用jsp页面作为视图组件,使用java bean类作为模型。

3.1 编写index.jsp

<%@ page language="java" contenttype="text/html;charset=utf-8" %>
<html>
<html>
<head>
    <meta charset="utf-8">
    <title>一点教程网-jsp的mvc模式</title>
</head>
<body>

<form action="controllerservlet" method="post">
    用户名:<input type="text" name="name"><br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="登录">
</form>

</body>
</html>

3.2 编写user实体类

package com.yiidian;

/**
 * 一点教程网 - http://www.yiidian.com
 */
public class user {
    private string name;
    private string password;

    public string getname() {
        return name;
    }

    public void setname(string name) {
        this.name = name;
    }

    public string getpassword() {
        return password;
    }

    public void setpassword(string password) {
        this.password = password;
    }

    public boolean validate(){
        if(password.equals("admin")){
            return true;
        }
        else{
            return false;
        }
    }
}

3.3 编写controllerservlet

package com.yiidian;

import javax.servlet.requestdispatcher;
import javax.servlet.servletexception;
import javax.servlet.http.httpservlet;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import java.io.ioexception;
import java.io.printwriter;

/**
 * 一点教程网 - http://www.yiidian.com
 */
public class controllerservlet extends httpservlet {
    protected void dopost(httpservletrequest request, httpservletresponse response)
            throws servletexception, ioexception {
        response.setcontenttype("text/html;charset=utf-8");
        printwriter out=response.getwriter();

        string name=request.getparameter("name");
        string password=request.getparameter("password");

        user bean=new user();
        bean.setname(name);
        bean.setpassword(password);
        request.setattribute("bean",bean);

        boolean status=bean.validate();

        if(status){
            requestdispatcher rd=request.getrequestdispatcher("login-success.jsp");
            rd.forward(request, response);
        }
        else{
            requestdispatcher rd=request.getrequestdispatcher("login-error.jsp");
            rd.forward(request, response);
        }

    }

    @override
    protected void doget(httpservletrequest req, httpservletresponse resp)
            throws servletexception, ioexception {
        dopost(req, resp);
    }
}

3.4 编写login-success.jsp

<%@ page  import="com.yiidian.user" contenttype="text/html;charset=utf-8" language="java" %>
<html>
<head>
    <title>一点教程网-jsp的mvc模式</title>
</head>
<body>
<p>你已经成功登录</p>

<%
    user bean=(user) request.getattribute("bean");
    out.print("欢迎你, "+bean.getname());
%>

</body>
</html>

3.5 编写login-error.jsp

<%@ page contenttype="text/html;charset=utf-8" language="java" %>
<html>
<head>
    <title>一点教程网-jsp的mvc模式</title>
</head>
<body>
<p>抱歉! 用户名或密码错误</p>
<form action="controllerservlet" method="post">
    用户名:<input type="text" name="name"><br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="登录">
</form>
</body>
</html>

3.6 配置web.xml

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
         xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <servlet>
        <servlet-name>controllerservlet</servlet-name>
        <servlet-class>com.yiidian.controllerservlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>controllerservlet</servlet-name>
        <url-pattern>/controllerservlet</url-pattern>
    </servlet-mapping>

</web-app>

3.7 运行测试

JSP中的MVC开发模式

输入错误的密码,显示如下:

JSP中的MVC开发模式

输入正确的密码(admin),显示如下:

JSP中的MVC开发模式

JSP中的MVC开发模式

欢迎关注我的公众号::一点教程。获得独家整理的学习资源和日常干货推送。
如果您对我的系列教程感兴趣,也可以关注我的网站: