JSP中的MVC

MVC代表模型视图和控制器。这是一种将业务逻辑, 表示逻辑和数据分开的设计模式。
控制器充当视图和模型之间的接口。控制器拦截所有传入的请求。
模型代表应用程序的状态, 即数据。它还可以具有业务逻辑。
视图表示演示, 即UI(用户界面)。
MVC(模型2)架构的优势

  1. 导航控制集中
  2. 易于维护的大型应用程序
JSP中的MVC

文章图片
如果你不熟悉MVC, 请先访问Model1 vs Model2。 JSP中的MVC示例
在此示例中, 我们使用servlet作为控制器, 使用jsp作为视图组件, 使用Java Bean类作为模型。
【JSP中的MVC】在此示例中, 我们创建了5个页面:
  • index.jsp从用户获取输入的页面。
  • ControllerServlet.java一个充当控制器的servlet。
  • login-success.jsp和login-error.jsp文件充当视图组件。
  • 用于映射servlet的web.xml文件。
< form action="ControllerServlet" method="post"> Name:< input type="text" name="name"> < br> Password:< input type="password" name="password"> < br> < input type="submit" value="http://www.srcmini.com/login"> < /form>

package com.srcmini; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ControllerServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out=response.getWriter(); String name=request.getParameter("name"); String password=request.getParameter("password"); LoginBean bean=new LoginBean(); 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); } }

package com.srcmini; public class LoginBean { private String name, 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; } } }

< %@page import="com.srcmini.LoginBean"%> < p> You are successfully logged in!< /p> < % LoginBean bean=(LoginBean)request.getAttribute("bean"); out.print("Welcome, "+bean.getName()); %>

< p> Sorry! username or password error< /p> < %@ include file="index.jsp" %>

< ?xml version="1.0" encoding="UTF-8"?> < web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> < servlet> < servlet-name> s1< /servlet-name> < servlet-class> com.srcmini.ControllerServlet< /servlet-class> < /servlet> < servlet-mapping> < servlet-name> s1< /servlet-name> < url-pattern> /ControllerServlet< /url-pattern> < /servlet-mapping> < /web-app>

输出量
JSP中的MVC

文章图片
JSP中的MVC

文章图片
JSP中的MVC

文章图片

    推荐阅读