MVC模式
1.MVC概念
MVC是模型(model),视图(view),控制器(controller)的缩写,分别代表Web应用程序中的3种指责。
模型:用于存储数据以及处理用户请求的业务逻辑
视图:向控制器提交数据,显示模型中的数据
控制器:根据视图提出的请求,判断将请求和数据交给那个模型处理,处理后的有关结果交给那个视图更新显示
2.基于Servlet的MVC模式
模型:一个或多个JavaBean对象,用于存储数据(实体模型,由JavaBean类创建)和处理业务逻辑(业务模型,由一半的Java类创建)
视图:一个或多个JSP页面,由控制器提交数据和为模型提供数据显示,JSP页面主要使用HTML标记和JavaBean标记来显示数据
控制器:一个或多个Servlet对象,根据视图提交的请求进行控制,即将请求转发给处理业务逻辑的JavaBean,并将处理结果存放到实体模型JavaBean中,输出给视图显示
使用JSP,Servlet,JavaBean实现MVC
实现MVC模式实现简单的用户登录验证程序。
1.定义来显示数据
package dto;
public class User {
private String name;
private String pwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
public String getPwd() {
return pwd; }
public void setPwd(String pwd) {
this.pwd=pwd;
}
}
2.UserCheck类用于判断用户名和密码是否正确
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;
}
return false;
}
return false;
}
}
3.编写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;
public class LoginCheckServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request,response); }
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//doGet(request, response);
request.setCharacterEncoding("utf-8");
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)) {
request.setAttribute("user", user);
RequestDispatcher dis=request.getRequestDispatcher("loginSuccess.jsp");
dis.forward(request,response);
}else {
response.sendRedirect("loginCheck.jsp");
}
}
}
4.登录页面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>loginCheck.jsp</title>
</head>
<body>
<form action="loginCheckServlet" method="post"><table>
<tr>
<td>用户名:</td>
<td><input type="text" name="name"/></td></tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="pwd"/></td></tr>
<tr>
<td><input type="submit" value="提交"/></td>
<td><input type="reset" value="重置"/></td>
</tr>
</table>
</form>
</body>
</html>
登陆成功页面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>loginSuccess.jsp</title>
</head>
<body>
<jsp:useBean id="user" type="dto.User" scope="requect"/>
恭喜<jsp:getProperty property="name" name="user"/>登陆成功!
</body>
</html>