原文连接:http://www.yiidian.com/jsp/jsp-mvc-model.htmlhtml
MVC,表明模型(Model),视图(View),控制器(Controller)。这是一种将业务逻辑,表现逻辑和数据分开的设计模式。java
控制器
充当视图和模型之间的接口。控制器拦截全部传入的请求。web
模型
表明应用程序的状态,即数据。它还能够具备业务逻辑。设计模式
视图
即UI(用户界面)。mvc
多个视图共享一个模型,大大提升代码的可重用性。
易于维护的大型应用程序app
在下面的示例中,咱们使用Servlet做为控制器,使用JSP页面做为视图组件,使用Java Bean类做为模型。yii
<%@ 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>
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; } } }
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); } }
<%@ 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>
<%@ 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>
<?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>
输入错误的密码,显示以下:jsp
输入正确的密码(admin),显示以下:ide
欢迎关注个人公众号::一点教程。得到独家整理的学习资源和平常干货推送。
若是您对个人系列教程感兴趣,也能够关注个人网站:yiidian.compost