MVC以及struts 1 猜想
来源:互联网 发布:centos虚拟系统管理器 编辑:程序博客网 时间:2024/06/05 16:07
Model
value包负责将数据库对象转为POJO
entity则是业务中于数据库交互的部分
form包负责将表单数据进行打包
Control
control包核心控制器,只有一个ActionServlit 负责转发调用action
action 处理业务
View
jsp
control类,暂时封装到这里,再往写应该读写xml配置文件了
package control;import java.io.IOException;import java.io.PrintWriter;import java.lang.reflect.InvocationTargetException;import java.util.logging.Logger;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import action.IAction;import action.LoginAction;import form.AbstractForm;import form.IActionForm;import form.LoginForm;public class ActionServlet extends HttpServlet {private AbstractForm form;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 某个form,填充字段数据// 不同form的字段不同// 相同的是reset,set字段validate()String path = request.getRequestURI();Logger log = Logger.getLogger("control");log.info(path);if (path.endsWith("login.do")) {String msg = fillForm(request, new LoginForm());beforeAction(request, response, msg, "login.jsp");if (msg != null) {return;}doAction(request, response, new LoginAction(), "index.jsp","login.jsp", "用户名或密码不存在");}if (path.endsWith("logout.do")) {}if (path.endsWith("showProducts.do")) {}if (path.endsWith("addProduct.do")) {}if (path.endsWith("deleteProducts.do")) {}}private String fillForm(HttpServletRequest request, AbstractForm form) {// this.form = form;form.reset();form.setParamaters(request, form);return form.validate();}private void beforeAction(HttpServletRequest request,HttpServletResponse response, String msg, String msgForwardURI)throws ServletException, IOException {if (msg != null) {request.setAttribute("msg", msg);request.getRequestDispatcher(msgForwardURI).forward(request,response);}}private void doAction(HttpServletRequest request,HttpServletResponse response, IAction action,String actionSuccessURI, String actionFailedURI,String actionFailedMsg) throws ServletException, IOException {String actionforward = action.execute();if (actionforward.equals("success")) {request.getRequestDispatcher(actionSuccessURI).forward(request,response);} else {request.setAttribute("msg", actionFailedMsg);request.getRequestDispatcher(actionFailedURI).forward(request,response);}}}
package form;public interface IActionForm {String validate();void reset();}
模版模式
package form;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.logging.Logger;import javax.servlet.http.HttpServletRequest;public abstract class AbstractForm implements IActionForm {private Field[] fileds;private Class cls;protected final void setClass(Class cls) {this.cls = cls;}protected final void fillFiledName() {fileds = cls.getDeclaredFields();}/** * field声明类型需要为string * */protected final void setParamaters1(HttpServletRequest request, Object obj) {for (Field f : fileds) {Class type = f.getType();String fname = f.getName();StringBuffer sbuffer = new StringBuffer("set");sbuffer.append(fname.substring(0, 1).toUpperCase());sbuffer.append(fname.substring(1));Logger log = Logger.getLogger("form");log.info("field:" + fname + " type:" + type + " method:" + sbuffer);Method method;try {method = cls.getDeclaredMethod(sbuffer.toString(), type);method.invoke(obj, request.getParameter(fname));} catch (SecurityException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}}}public final void setParamaters(HttpServletRequest request, Object obj) {setClass(obj.getClass());fillFiledName();setParamaters1(request, obj);}}
package form;public class LoginForm extends AbstractForm {private String username;private String passwrod;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPasswrod() {return passwrod;}public void setPasswrod(String passwrod) {this.passwrod = passwrod;}public void reset() {username = "";passwrod = "";}public String validate() {if (username.equals("")) {return "用户名不能为空";}if (passwrod.equals("")) {return "密码不能为空";}return null;}}
package action;public class LoginAction implements IAction {public String execute() {return "success";}}
- MVC以及struts 1 猜想
- 概述struts,以及struts如何实现MVC架构的?
- 1 Struts,MVC的实现
- struts MVC
- 猜想1
- 内存速度测试以及猜想
- Struts MVC 和 spring MVC
- Java Struts2 框架入门详解(一)MVC架构详解以及Struts基本概述
- struts 2.2.1发布以及javassist问题
- Struts 1 简介 执行流程 以及demo
- Struts,MVC 的实现
- Struts 与 MVC 模式
- Struts与MVC模式
- Struts中的mvc
- MVC Struts 概述
- MVC框架struts
- struts is MVC
- Struts与MVC模式
- 错过绝对后悔的15个HTML5工具和资源
- 数据库设计中的14个技巧
- mysql中文乱码问题
- 数据字典和动态性能视图 下 的用户名,权限和角色
- TCP SYN扫描
- MVC以及struts 1 猜想
- Git 常用命令速查表(三)
- [WinRT]WebView外部转跳变内部转跳
- 直接拿来用的10个PHP代码片段
- java中多重循环的简化
- 心中畏惧的service(一)
- 用OLE操作Excel(目前最全的资料)-转自http://www.lewensky.cn/read.php/212.htm
- ORACLE10g建立数据库时报错 ORA-24324 ORA-24323 ORA-28547
- 吐槽