MVC模式在Java Web應用程序中的實例分析
結合六個基本質量屬性
可用性:
異常
可修改性:
1.維持語義的一致性,高內聚低耦合
2.維持現有的接口,Login依賴LoginIService接口,LoginService依賴ILogDAO
性能:暫無
安全性:
對用戶進行身份驗證
易用性:暫無
分析具體功能模塊的MVC設計實現(例如登錄、用戶權限等功能模塊)
在實際項目中的具體應用或分析MVC設計模式在具體網站中的應用(需要列舉實例)
login |
public String execute() throws Exception { String[] request=loginservice.userpan(user, pwd, randcode); req.getSession().setAttribute("username",user); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8");//防止彈出的信息出現亂碼 PrintWriter out = response.getWriter(); if(request[0].equals("Error")) { out.print("<script>alert(‘"+request[1]+"‘);</script>"); out.flush(); out.close(); return "Error"; } return "Success"; } |
LoginISerivece |
public String[] userpan(String user,String pwd,String randcode); |
LoginService |
//輸入用戶名,密碼,驗證碼,返回(id,msg)是否錯誤和錯誤信息 public String[] userpan(String user,String pwd,String randcode) { String[] msg = new String[2]; String bm=""; HttpServletRequest req=ServletActionContext.getRequest(); String srand=(String)req.getSession().getAttribute("rand");//session.setAttribute("rand", sRand); msg[0]="Error"; msg[1]="未知錯誤"; try { if(!srand.equals(randcode)) { msg[0]="Error"; msg[1]="驗證碼錯誤"; return msg; } } catch (Exception e) {
msg[0]="Error"; msg[1]="驗證碼錯誤"; return msg; }
try{ Log result=logdao.findById(user); if(result==null) { msg[0]="Error"; msg[1]="賬號不存在"; return msg; } if(!result.getPassword().equals(pwd)) { msg[0]="Error"; msg[1]="密碼錯誤"; return msg; } bm=result.getBm();
} catch (Exception e) { msg[0]="Error"; msg[1]="賬號密碼錯誤"; return msg; } req.getSession().setAttribute("bm", bm); msg[0]="Success"; return msg; }
|
ILoginDAO |
public Log findById(java.lang.String id); |
LoginDAO |
public Log findById(java.lang.String id) { log.debug("getting Log instance with id: " + id); try { Log instance = (Log) getHibernateTemplate().get("interdao.dao.Log", id); return instance; } catch (RuntimeException re) { log.error("get failed", re); throw re; } } |
Log |
public class Log extends AbstractLog implements java.io.Serializable {
// Constructors
/** default constructor */ public Log() { }
/** minimal constructor */ public Log(String username, String password, String role) { super(username, password, role); }
/** full constructor */ public Log(String username, String password, String role, String bm) { super(username, password, role, bm); }
} |
MVC模式在Java Web應用程序中的實例分析