• struts入门


    struts简介:

    Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

    优缺点:

    Struts的优点主要集中体现在两个方面,Taglib和页面导航。Taglib是Struts的标记库,灵活多用,能大大提高开发效率。
    Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。
    Struts的漏洞处理机制常被诟病,一来OGNL的功能强大和请求处理机制极易产生远程执行问题,二来开发组对漏洞处理能力不足,要么修复后仍可以绕过,要么无法修复而长期闲置处理。
     
    struts入门:
    struts环境搭配
    在昨天博客环境搭配中加入
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-core</artifactId>
                <version>2.5.13</version>
            </dependency>

    然后导入xml文件:

    base.xml文件配置

    写一个控制器 写上需要测试的方法

     

     在struts-sy.xml中配置好 

    最后写一个jsp界面来测试

    完成。

    struts前台和后台参数的传递

    jsp参数传递到后台有三种方式

    1.implements modelDrivern接受参数值

    2.类实例。属性名  接受参数值

    3.set/get接受参数值

    写好实体类

    jsp界面

    以上报错为假报错可忽略。

    控制器接受值然后取出值

        /**
         * implements modelDrivern接受参处值
         * @return
         */
        public String accept1() {
            System.out.println("cal1="+cal1);
    }
    /**
         * 类实例。属性名  接受参处值
         * @return
         */
        public String accept2() {
            System.out.println("cal2="+cal2);
            return "rs";
        }
        /**
         * set/get接受参处值
         * @return
         */
        public String accept3() {
            System.out.println(sex);
            return "rs";
        }

     后台传值到jsp界面

    一是注入

    二是非注入

    public class HelloAction implements ModelDriven<Cal>,ServletRequestAware{
        //注入耦合
     private HttpServletRequest req;
     private Cal cal1=new Cal();
     private Cal cal2;
     private String sex;
     
     
        public Cal getCal2() {
        return cal2;
    }
    public void setCal2(Cal cal2) {
        this.cal2 = cal2;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
        public String add() {
            System.out.println("调用add方法。。。。");
            return "rs";
        }
        public String del() {
            System.out.println("调用del方法");
            return "rs";
        }
        /**
         * implements modelDrivern接受参处值
         * @return
         */
        public String accept1() {
            System.out.println("cal1="+cal1);
    //        req.setAttribute("cal1", cal1);
            //非注入耦合
            HttpServletRequest request=ServletActionContext.getRequest();
            request.setAttribute("cal1", cal1);
            //非注入解耦
    //        ActionContext context=ActionContext.getContext();
    //        context,get("xxxxxxx");
            return "rs";
        }
        /**
         * 类实例。属性名  接受参处值
         * @return
         */
        public String accept2() {
            System.out.println("cal2="+cal2);
            return "rs";
        }
        /**
         * set/get接受参处值
         * @return
         */
        public String accept3() {
            System.out.println(sex);
            return "rs";
        }
    
        
        @Override
        public Cal getModel() {
            // TODO Auto-generated method stub
            return cal1;
        }
        @Override
        public void setServletRequest(HttpServletRequest req) {
            this.req=req;
            
        }
        
    }

    在jsp界面测试

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    结果页
    ${cal1}
    </body>
    </html>

    显示:

     成功;

  • 相关阅读:
    uart协议--Verilog及仿真
    DC综合的流程
    modelsim将vcd文件转换成wlf文件并查看波形
    将系统盘还原成原来的普通u盘
    Ubuntu的操作命令
    gvim快捷键
    dc_shell环境下TCL语言的使用
    AHB总线学习
    Ubuntu文件共享
    Linux基础学习 | 目录及文件
  • 原文地址:https://www.cnblogs.com/AluoKa/p/11093706.html
Copyright © 2020-2023  润新知