struts學習筆記(1)

1、cookie和session的區別
2、struts學習筆記
① struts屬性驅動和模型
② action當中指定業務方法的調用
③ 管理處理結果
④ 訪問servletAPI
– 耦合度高 使用的是servlet當中的方法
– 耦合度低 使用的是action當中的方法
⑤ struts2 是在struts1和 webwork的基礎之上研發出來的新的MVC框架。是一個開源框架。
3、配置struts過濾器,進行攔截請求
① 建項目
② 導入jar包(大概10個)
③ 配置struts.xml

<struts>
    <package name="hello" namespace="/" extends="struts-default" > <!--默認繼承與struts-defult-->
        <action name="hello" class="cc.ccoder.study.HelloWord" method="execute">
        <!--action當中的name相當於servlet中的url-patten class當前action處理的是哪一個類 method默認處理的是類中的哪一個方法-->
            <result>/index.jsp</result> <!--處理結果-->
        </action>
    </package>
</struts>
 配置struts.xml的時候需要創建一個java類來處理action。並且在<result>當中默認設置爲success
public class HelloWord {

private String msg;
    public String getMsg() {
        return msg;
    }

    public String execute(){
        msg = "hello world";
        return "success";
    }
}

④ 配置web.xml
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
在web.xml當中需要配置過濾器,並且設置攔截。在filter-mapping當中設置連接的地址。這是struts自定義的過濾器,是整個struts的屬性驅動

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd";
version="3.1">
     <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>
① struts屬性驅動是指在jsp頁面當中name需要在action當中對應。
<action name="userLogin" class="cc.ccoder.study.LoginAction" method="userLogin">
    <result name="hehe">/welcome.jsp</result>
</action>
在action當中method對應的是class當中將要進行處理攔截的方法名字。

/welcome.jsp
這裏result的name是上面method進行攔截的方法當中的return中的名稱。如果不寫默認情況下是success。

public String userLogin(){
    System.out.println("用戶名:"+username+" 密碼:"+password);
    return "hehe";
}
需要注意的是method當中bean命名需要和form表單當中的名稱保持一致。

5、模型驅動
action當中屬性名爲對象(模型)

public class UserAction {

    private User user;

    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }

    public String userLogin(){
        System.out.println("用戶名: "+user.getUsername());
        System.out.println("密碼 "+user.getPassword());
        return "success";
    }
}
在struts當中配置的和屬性驅動
<action name="userAction" class="cc.ccoder.study.UserAction" method="userLogin">
    <result>/welcome.jsp</result>
</action>

跟屬性驅動不同的是,在form表單當中name屬性需要指明爲action當中的對象的屬性。
如下面代碼所示:name=user.username

<form action="userAction" method="post">
    <input name="user.username">
    <input name="user.password" type="password">
    <input type="submit" value="登錄">
</form>

聰聰的獨立博客

聰聰的獨立博客 ,一個喜歡技術,喜歡鑽研的95後。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章