猿教程 Logo

JSP MVC

MVC代表模型、视图和控制器。 它是一种将业务逻辑,表示逻辑和数据分开的设计模式。

控制器作为View和Model之间的接口。 控制器拦截所有传入的请求。

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

视图表示呈现,即UI(用户界面)。

MVC架构的优势

  1. 导航控制是集中式的

  2. 易于维护大型的应用



在JSP中的MVC示例

在这个例子中,我们使用servlet作为控制器,jsp作为视图组件,Java Bean类作为模型。

在本例中,我们创建了5个页面:

  • index.jsp从用户获取输入的页面。

  • ControllerServlet.java一个充当控制器的servlet。

  • login-success.jsp和login-error.jsp文件充当视图组件。

  • web.xml文件用于映射servlet。

index.jsp 文件:

<form action="ControllerServlet" method="post">
Name:<input type="text" name="name"><br>
Password:<input type="password" name="password"><br>
<input type="submit" value="login">
</form>

ControllerServlet 文件

package com.javatpoint;
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);
	}
}

LoginBean.java 文件:

package com.javatpoint;
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;
	}
}
}

login-success.jsp 文件:

<%@page import="com.javatpoint.LoginBean"%>

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

 login-error.jsp 文件:

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

web.xml 文件:

<?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.javatpoint.ControllerServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
  <servlet-name>s1</servlet-name>  
  <url-pattern>/ControllerServlet</url-pattern>  
  </servlet-mapping>  
</web-app>

运行效果:




版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Jsp/MVC-in-jsp.html