zoukankan      html  css  js  c++  java
  • 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);

    }

    }

  • 相关阅读:
    [译]kendoui
    [LeetCode] 74 Search a 2D Matrix(二分查找)
    [LeetCode] N皇后问题
    [LeetCode] 5 Longest Palindromic Substring
    [LeetCode] 98 Validate Binary Search Tree
    [LeetCode] 119 Pascal's Triangle II
    [LeetCode] 二叉树相关题目(不完全)
    排序方法的分类和实现
    已知前序(后序)遍历序列和中序遍历序列构建二叉树(Leetcode相关题目)
    拓扑排序(附LeetCode题目)
  • 原文地址:https://www.cnblogs.com/zuhaoran/p/6809366.html
Copyright © 2011-2022 走看看