商苑面馆:Java 网页版之 FoodModel层
来自CloudWiki
目录
Model层的作用
- M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
客户端功能
客户端Model层的编写
开发过程
创建项目和网页页面
我们在商苑面馆:Java 网页版之 FoodView层已经完成。
创建servlet
向工程添加一个servlet文件:
在包service中,包名 右键→New→Servlet ,新建一个叫FoodServlet的类。
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> <servlet> <servlet-name>FoodServlet</servlet-name> <servlet-class>service.FoodServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FoodServlet</servlet-name> <url-pattern>/search</url-pattern> </servlet-mapping> </web-app>
程序测试运行
右击项目名称,RUN -> RUN AS SERVER
选择tomcat服务器
网站首页会出现如下画面:
如果输入了数据库中之前存入的记录,点击提交,会跳转到成功页面:
什么是MVC
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。其实上面的结构就是一种MVC,页面用jsp来展现,控制用servlet,而模型就是用普通的JAVA类来实现不同的处理过程。
参考: