商苑面馆:Java 网页版之 Model层

来自CloudWiki
跳转至: 导航搜索

Model层的作用

  • M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

Java8-1.png

客户端功能

Java2-36.png


客户端Model层的编写

开发过程

创建项目和网页页面

我们在商苑面馆:Java 网页版之 View层已经完成。

W5-49.png

创建servlet

向工程添加一个servlet文件:

新建一个package叫service,然后在包名 右键→New→Servlet

package service;
/**
 * 这个类主要的功能是获取前端页面用户输入的用户名和密码 然后调用LoginSuccess方法进行用户名和密码与数据库中数据进行匹配
 * 并进行跳转,用户名和密码正确跳转login_success.jsp,错误跳转login_failed.jsp
 */
import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.UserDao;
import dao.UserDaoSQL;
//  登录方法
public class UserServlet implements javax.servlet.Servlet  {
	
	/*
	 * 方法名称:login
	 * 功能:调用底层数据库方法,对用户名密码进行验证
	 * 返回:True /False
	 */
	public boolean login(String name, String pwd) throws Exception{
		UserDao db = new UserDaoSQL(); // 构建登陆对象
		boolean canLogin = db.verify(name, pwd);// 取得用户名和密码
		if (canLogin) {// 根据登陆情况,跳转页面
			System.out.println("用户名和密码正确");
			return true;			
		} else {
			System.out.println("用户名和密码错误");
			return false;
		}
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws Exception  {
		String username = request.getParameter("username");// 取得用户名
		String password = request.getParameter("password");// 取得密码
		System.out.println("取得用户名和密码");
		boolean result = login(username,password);
		if(result==true){
			response.sendRedirect("login_success.jsp");
		}else {
			response.sendRedirect("login_failed.jsp");
		}
		
	}
	/*以下的代码咱不用研究,
	 * 带着就行 
	 * 不影响软件编写*/
	public void destroy() {
	}
	public ServletConfig getServletConfig() {
		return null;
	}
	public String getServletInfo() {
		return null;
	}
	public void init(ServletConfig arg0) throws ServletException {
	}
 
	public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
		HttpServletRequest rq = (HttpServletRequest) request;
		HttpServletResponse rs = (HttpServletResponse) response;
		try {
			doPost(rq, rs);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


.创建一个web.xml

web.xml用来建立servlet与jsp的关系(需要放在WEB-INF内)。

根据不同的url来调用不同的servlet来进行处理。


<?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" 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">
  <display-name>web7-3</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
    <servlet>
  		<servlet-name>UserServlet</servlet-name>
  		<servlet-class>service.UserServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  		<servlet-name>UserServlet</servlet-name>
  		<url-pattern>/login</url-pattern>
  </servlet-mapping>
</web-app>


程序测试运行

右击项目名称,RUN -> RUN AS SERVER

选择tomcat服务器

网站首页会出现如下画面:

Java7-32.png

如果输入了数据库中之前存入的记录,点击提交,会跳转到成功页面:

Java7-33.png

什么是MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。其实上面的结构就是一种MVC,页面用jsp来展现,控制用servlet,而模型就是用普通的JAVA类来实现不同的处理过程。

参考:

https://www.cnblogs.com/coder2012/p/3389979.html