使用JSP,Servlet,JavaBean实现MVC

首先:

MVC是Model、View、Controller的缩写,分别代表Web应用程序中的三种职责:

模型——用于存储数据以及处理用户请求的业务逻辑。
视图——向控制器提交数据,显示模型中的数据。

控制器——根据视图提出的请求,判断将请求和数据交给哪个模型处理,处理后的有关结果交给哪个视图更新显示。

基于Servlet的MVC模式的具体实现如下:
模型:一个或多个JavaBean对象,用于存储数据(实体模型,由JavaBean类创建)和处理业务逻辑(业务模型,由一般的Java类创建)。
视图:一个或多个JSP页面,向控制器提交数据和为模型提供数据显示,JSP页面主要使用 HTML标记和JavaBean标记来显示数据。

控制器:一个或多个Servlet对象,根据视图提交的请求进行控制,即将请求转发给处理业务逻辑的JavaBean,并将处理结果存放到实体模型JavaBean中,输出给视图显示。

********************************************************************************

一个简单的MVC项目:MVC实现用户登录验证程序

其中包括:

实体模型User

业务模型UserCheck,

控制器LoginCheckServlet

两个视图页面。(登陆页面和登录成功)


实体模型:

package dto;

public class User {//定义实体模型表示数据

	private String name;
	private String pwd;
	public String getName() {
		return name;
	}
	public  String getPwd() {
		return pwd;
	}
	public void setName(String name)
	{
		this.name=name;
	}
	public  void setPwd(String pwd) {
		this.pwd=pwd;
	}
	
}

业务模型:

package service;

import dto.User;

public class UserCheck {//定义业务模型处理业务
      //验证登录
	public  boolean validate(User user) {
		if(user!=null&&user.getName().equals("JSPMVC")) {
             if(user.getPwd().equals("MVC"))return true;
             else return false;
	}
     return false;
	}
}


编写Servlet处理请求

package servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import service.UserCheck;
import dto.User;

/**
 * Servlet implementation class LoginCheckServlet
 */
@WebServlet(name="LoginCheckServlet",urlPatterns= {"/LoginCheckServlet"})
public class LoginCheckServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginCheckServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		 doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
          request.setCharacterEncoding("GBK");
          String name =request.getParameter("name");
          String pwd=request.getParameter("pwd");
          User user=new User();
         user.setName(name);
         user.setPwd(pwd);
         UserCheck uc=new UserCheck();
         if(uc.validate(user)) {
        	 //把装有数据的实体模型user存储到reuqest范围内
        	 request.setAttribute("user", user);
        	 RequestDispatcher dis =request.getRequestDispatcher("loginSuccess.jsp");
        	 dis.forward(request, response);
         }else {
        	 response.sendRedirect("loginCheck.jsp"); 
         }
	}

}

视图部分:

登陆界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>loginCheck.jsp</title>
</head>
<body>
   <form action="LoginCheckServlet" method="get">
   <table>
   <tr>
   <td>用户名:</td>
   <td><input type="text" name="name"/></td>
   </tr>
   <tr>
   <td>密 码:</td>
   <td><input type="text" name="pwd"></td>
   </tr>
   <tr>
   <td><input type="submit" value="提交"/></td>
   <td><input type="submit" value="重置"/></td>
   </tr>
   </table>
   </form>
   
   

</body>
</html>


登录成功:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@page import="dto.User" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>loginSuccess.jsp</title>
</head>
<body>
    <jsp:useBean id="user" type="dto.User" scope="request"/>
    恭喜<jsp:getProperty property="name" name="user"/>登录成功!
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值