MVC设计思想
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
Model(模型)表示应用程序核心(比如数据库记录列表)。
View(视图)显示数据(数据库记录)。
Controller(控制器)处理输入(写入数据库记录)。
MVC设计思想主要用于表现层,准确来说 MVC 是以页面为核心,将表现层分为模型、视图、控制器三部分,是基于界面开发的指导思想。
表现层负责用户界面的交互,表现层不能直接访问数据。业务层负责数据的传递和业务方法的处理,业务层不能直接访问数据库,而是要通过数据访问层提供的接口实现数据的调用。数据访问层负责数据的处理工作,封装了所有与数据库的交互操作。
在模拟登录的情形下同样使用MVC思想来实现:
View部分:
LoginServlet.java
该部分主要实现的是登录页面,页面通过post方式将数据提交给controller
package com.cn.view;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class LoginServlet
*/
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
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
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.println("<h1>user login<h1>");
out.println("<form action='/UserManage/LoginHandleServlet' method='post'>");
out.println("user:<input type='text' name='username'/><br/>");
out.println("pswd:<input type='password' name='password'/><br/>");
out.println("<input type='submit' value='login'/><br/>");
out.println("</form>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
controller部分:
LoginHandleServlet.java
该页面主要实现的是从view部分获取提交的数据,并根据获取到的数据与默认设置的用户名及密码进行匹配,如果匹配成功则——–,如果失败则——-。当然这里只是简易的进行模拟,实际开发过程中还是需要用到数据库。
package com.cn.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class LoginHandleServlet
*/
public class LoginHandleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginHandleServlet() {
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
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
//System.out.println("username:" + username + "\n" + "password:" + password);
//验证操作
if("chenning".equals(username)&&"898368".equals(password)){
//跳转至下一个页面
//sendRedirect url的格式 /web应用名/servlet url
response.sendRedirect("/UserManage/MainFrame");
}else{
//跳回
response.sendRedirect("/UserManage/LoginServlet");
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}