JSP中的MVC开发模式
程序员文章站
2022-03-10 13:12:30
原文链接: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)模式的优势
多个视图共享一个模型,大大提高代码的可重用性。
易于维护的大型应用程序
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 运行测试
输入错误的密码,显示如下:
输入正确的密码(admin),显示如下:
欢迎关注我的公众号::一点教程。获得独家整理的学习资源和日常干货推送。
如果您对我的系列教程感兴趣,也可以关注我的网站:
推荐阅读
-
解决Vue+Element ui开发中碰到的IE问题
-
iOS App设计模式开发之适配器模式使用的实战演练
-
详解Objective-C设计模式编程中对备忘录模式的运用
-
详解iOS App开发中改变UIButton内部控件的基本方法
-
详解Objective-C编程中对设计模式中适的配器模式的使用
-
实例讲解设计模式中的命令模式在iOS App开发中的运用
-
设计模式中的Memento备忘录模式的在iOS App开发中的运用
-
实例讲解如何在iOS应用开发中使用设计模式中的代理模式
-
实例讲解iOS应用的设计模式开发中的Visitor访问者模式
-
详解iOS应用开发中autoresizing尺寸自动适应属性的用法