1、尚学堂科技王勇讲Struts1Struts多层架构及MVC领域模型_模式_框架简介Sturts+Hibernate+SpringStruts是一个MVC框架Hibernate是做持久层的(DRP中dao这块就不要了sql语句就不怎么写了)Spring提供一些基础性的服务,我们在DRP中,对象的管理,事物。几个概念:Domain Model(领域模型),DDD(领域驱动设计),例如:银行领域模型 (是一个核心)领域模型从角色上分有五个:实体、值对象、工厂、仓储、服务。平行模型:只有状态没有行为,Pattern(模式)Framework(框架)多层框架概述我们的目标是:能够熟练运用当前流行的jav
2、a开源框架:Struts、Hibernate以及Spring来构建灵活、易于扩展的多层Web应用程序。C/S:以数据库为中心B/S:多层架构才是真正的目的B/S:多层架构将显示、业务运算、数据库等功能完全分离,杜绝彼此的耦合与影响,从而实现松耦合(解耦合)和良好的可维护性。呈现层(UI Layer/Presentation Layer)Struts业务逻辑层(Business Layer)Spring持久化层(Persistence Layer)hibernateStruts深入理解MVC模式掌握Struts体系架构掌握Struts开发流程熟练掌握Struts的配置方法从Servlet说开去什
3、么是Servlet?如何编写Servlet?如何映射Servlet?相对路径与绝对路径的基本概念如何基于Servlet编程?JavaBeans JavaBean是一种java类 JavaBean必须是具体的和公共的,并且具备无参构造器 JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露称为属性 JavaBean提供两种方法来访问Bean的内部状态: 访问器(getters)用来读JavaBenan状态-以小写get前缀开始,后跟属性名,属性名的第一个字母必须大写,返回值必须匹配相应修改器的方法的参数;如果访问器返回boolean值,则使用is前缀开始,后跟属性名,属性名第一个字母
4、必须大写。 修改器(setters)用来修改JavaBean状态,以小写set前缀开始,后跟属性名,属性名的第一个字线必须大写,修改器的返回值通常为void。Servlet的简单使用Index.jsp请求页面 b.jsp请求到TestServlet.java中import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;
5、import javax.servlet.http.HttpServletResponse;public class TestServlet extends HttpServlet private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException /取得表单数据 String username = request.getParam
6、eter(username); UserManager userManager = new UserManager(); List userList = userManager.findUserByName(username); request.setAttribute(userlist, userList); /转向到c.jsp,取出list中的数据 request.getRequestDispatcher(/a/b/c/c.jsp).forward(request, response); return; 根据表单数据从UserManager.java中获取数据import java.uti
7、l.ArrayList;import java.util.List;public class UserManager public List findUserByName(String name) List userList = new ArrayList(); userList.add(数据一); userList.add(数据二); return userList; 在web.xml中配置servlet信息 TestServlet com.bjsxt.servlet.TestServlet TestServlet /servlet/testServlet 转发到c.jsp中获取信息 请求说
8、明MVCMVC框架它分两种:一种是面向请求驱动的(Struts1.x,Struts2.x,WebWork);一种是面向事件驱动的(JSF)。MVC实现原理简单MVC模式小例子搭建完后的格式index.jsp发送请求页面 测试Servlet error.jsp请求失败页面数据出错!seccess.jsp请求成功页面 % List userList = (List)request.getAttribute(userlist); out.println(userList); %Web.xml配置文件 test_servlet2 index.html index.htm index.jsp defau
9、lt.html default.htm default.jsp TestServlet com.bjsxt.servlet.TestServlet TestServlet *.do action_config.xml配置文件 Action.java接口Actionpackage com.bjsxt.servlet.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public interface Action public String servic
10、e(HttpServletRequest request, HttpServletResponse response);AddUserAction.java实现Action接口的添加类package com.bjsxt.servlet.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.bjsxt.servlet.UserManager;public class AddUserActio
11、n implements Action Override public String service(HttpServletRequest request, HttpServletResponse response) /取得表单数据 String username = request.getParameter(username); UserManager userManager = new UserManager(); List userList = userManager.addUser(username); request.setAttribute(userlist, userList);
12、 return /seccess.jsp; ModifyUserAction.java实现Action接口的修改类package com.bjsxt.servlet.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.bjsxt.servlet.UserManager;public class ModifyUserAction implements Action Override pub
13、lic String service(HttpServletRequest request, HttpServletResponse response) /取得表单数据 String username = request.getParameter(username); UserManager userManager = new UserManager(); List userList = userManager.modifyUser(username); request.setAttribute(userlist, userList); return /seccess.jsp; QueryUs
14、erAction.java实现Action接口的查询类package com.bjsxt.servlet.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.bjsxt.servlet.UserManager;public class QueryUserAction implements Action Override public String service(HttpServletR
15、equest request, HttpServletResponse response) /取得表单数据 String username = request.getParameter(username); UserManager userManager = new UserManager(); List userList = userManager.findUserByName(username); request.setAttribute(userlist, userList); return /seccess.jsp; UserManameger.java根据页面信息取得数据packag
16、e com.bjsxt.servlet;import java.util.ArrayList;import java.util.List;public class UserManager /添加用户 public List addUser(String name) List userList = new ArrayList(); userList.add(添加数据一); userList.add(添加数据二); return userList; /查找用户 public List findUserByName(String name) List userList = new ArrayList
17、(); userList.add(查找数据一); userList.add(查找数据二); return userList; /修改用户 public List modifyUser(String name) List userList = new ArrayList(); userList.add(修改数据一); userList.add(修改数据二); return userList; TestXML.java取得配置文件action_config.xml文件package com.bjsxt.servlet;import java.io.IOException;import javax.
18、xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;public class TestXML public static String getStr(String
19、 uiPath) Class c = TestXML.class; String filename = c.getResource().getPath().toString(); filename = filename.substring(0, filename.indexOf(classes)+classes.length()+1)+action_config.xml; String strClass = ; Document document = null; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstanc
20、e(); DocumentBuilder builder; try builder = factory.newDocumentBuilder(); document = builder.parse(filename); catch (ParserConfigurationException e) e.printStackTrace(); catch (SAXException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); NodeList list = document.getElementsByTagNa
21、me(action); for(int i=0;ilist.getLength();i+) Element tag = (Element) list.item(i); String path = tag.getAttribute(path); if(uiPath.equals(path) strClass = tag.getAttribute(class); return strClass; TestServlet.java总体进分发及转向package com.bjsxt.servlet;import java.io.IOException;import java.lang.reflect.
22、InvocationTargetException;import java.lang.reflect.Method;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestServlet extends HttpServlet private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String forwardPath = /error.jsp; String currentURI = request.getRequestURI(); / System.out.println(currentURI+currentURI);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1