JSP设计模式MVC

【两种设计模式的优缺点】

 

【JSP + JavaBean模式】

主要使用标签:

<jsp:useBean id="user" class="com.fiberhome.pojo.User" scope="page"></jsp:useBean>

<jsp:setProperty property="username" name="user"/>

<jsp:setProperty property="*" name="user"/>

<jsp:getProperty property="username" name="user"/>

<%-- <%
        /* 原始接收参数 */
        String username = (String)request.getAttribute("username");
        String password = (String)request.getAttribute("password");
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        System.out.println(user);

    %> --%>


    <!-- 
        这句jsp标签就相当于new 了一个User对象; 并且保存在page域中
        详细过程:
            先在page 域中查找user,如果有就使用, 如果没有就new一个并放在page域中

     -->
    <jsp:useBean id="user" class="com.fiberhome.pojo.User" scope="page"></jsp:useBean>
    
    <!-- 单个的去封装数据 -->
    <%-- 
    <jsp:setProperty property="username" name="user"/>
    <jsp:setProperty property="password" name="user"/> 

    --%>
    
    <!-- 
        统一封装
        原理:
            如果jsp表格中的属性名称和实体类中的属性名称一致就能封装;
 
    -->
    <jsp:setProperty property="*" name="user"/>
    
    <!-- 打印出对象中的属性 -->
    <jsp:getProperty property="username" name="user"/>
    <jsp:getProperty property="password" name="user"/>

 

JSP的开发模式二】:掌握

JSP + Servlet + JavaBean 称为MVC的设计模式.

MVC:

M:Model:模型层

V:View:视图层

C: controller: 控制层

 

案例;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /* 原始方法:
        //接收数据
        String username = (String) request.getParameter("username");
        String password = (String) request.getParameter("password");
        
        //封装数据
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        */
        
        
        // 使用BeanUtils工具类的populate方法统一封装
        // 需要使用两个库文件 
        // commons-beanutils-1.8.3.jar   commons-logging-1.1.1.jar

        
        User user = new User();
        
        Map<String, String[]> parameterMap = request.getParameterMap();
        try {
            //直接完成数据的封装 

            // 原理: jsp中表格中的name值与实体类中的属性名保持一致
            BeanUtils.populate(user, parameterMap);
            
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        System.out.println(user);
    }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值