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>

显示:

 

 成功;

posted @ 2019-06-26 20:31  AluoKa  阅读(128)  评论(0编辑  收藏  举报