struts入門

struts簡介:html

Struts是Apache軟件基金會(ASF)贊助的一個開源項目。它最初是Jakarta項目中的一個子項目,並在2004年3月成爲ASF的頂級項目。它經過採用Java Servlet/JSP技術,實現了基於Java EE Web應用的Model-View-Controller(MVC設計模式的應用框架,是MVC經典設計模式中的一個經典產品。java

優缺點:apache

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

最後寫一個jsp界面來測試ide

完成。學習

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>

顯示:

 

 成功;

相關文章
相關標籤/搜索