struts框架設計



/***************************************************搭建一個最基本的struts框架應用*****************************/


配置Struts2框架的開發環境配置步驟如下:

 
1、導入struts2所需要的jar包

2、配置web.xml文件

3、編寫action類  

4、配置struts.xml文件。



(1)添加jar包:

commons-fileupload-1.2.2.jar

commons-io-2.0.1.jar

commons-lang-2.5.jar

commons-logging-1.1.1.jar

freemarker-2.3.16.jar

struts-el-1.3.10.jar

ognl-3.0.1.jar

struts2-core-2.2.3.jar

xwork-2.0.4.jar

(2)配置web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SpringWebTest</display-name>

<!--以上是web.xml文件的頭信息  不可改變-->

<!-- 過濾器,統一編碼格式 -->
    <filter>
        <filter-name>EncodingFilter</filter-name>
        <filter-class>com.msp.util.FilterDemo</filter-class>
        <init-param>
            <param-name>encode</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>EncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
<!-- 過濾器結束 -->

<!-- 也可以應用如下配置  不過要用到Spring的jar包    開始-->

<filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<!-- 也可以應用如下配置  不過要用到Spring的jar包    結束-->


<!-- 配置 struts2.0 過濾轉發器 -->
<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>

<!-- 過濾轉發器結束 -->

<!--定時器配置 開始-->
    <listener>
        <listener-class>com.msp.util.MyTimerListener</listener-class>
    </listener>
<!--定時器配置結束-->

<!--session過期的問題配置   開始-->
    <session-config>
       <session-timeout>3000</session-timeout>
    </session-config>
<!--session過期的問題配置   結束-->



解決工程編碼的問題,統一編碼格式UTF-8

/**
  *  編碼格式過濾器
  *  com.msp.util.FilterDemo的編寫
  *
  */

public class FilterDemo implements Filter{

    private FilterConfig filterConfig;
    private String encoding;

    public void destroy() {
      filterConfig=null;
    }

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
           if(encoding!=null){
              request.setCharacterEncoding(encoding);
              chain.doFilter(request, response);
           }
        
    }

    public void init(FilterConfig config) throws ServletException {
        filterConfig=config;
        encoding=filterConfig.getInitParameter("encode");
        
    }
    
}



/**
 *
 * 定時器的配置  一般都要實現ServletContextListener接口
 * com.msp.util.MyTimerListener
 *
  /

public class MyTimerListener implements ServletContextListener {
    private BugXmlTimer  mytimer = new BugXmlTimer  ();
    public void contextInitialized(ServletContextEvent event) {
        mytimer.timerStart();
    }

    public void contextDestroyed(ServletContextEvent event) {
        mytimer.timerStop();
    }
}






(3)編寫action類

    新建一個pojo類,繼承 ActionSupport  複寫其中的execute方法

     public class TestAction extends ActionSupport{

    
    public String loginAction() throws Exception {
        //TODO登錄操作
        return SUCCESS;
    }
    
    
    public String loginOut() throws Exception {
        //TODO退出操作
        return SUCCESS;
    }
    }



4)配置struts.xml文件:注意頭文件中的數字2.0,它屬於版本號

    新建  struts.xml 頭文件如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

  <constant name="struts.i18n.encoding" value="utf-8" />//國際化支持

  <package name="struts2" namespace="/" extends="struts-default">

    <!--攔截器配置開始-->
   <interceptors>
    <interceptor name="loginedCheck" class="com.msp.interceptor.LoginedCheckInterceptor"/>
        <interceptor-stack name="mystack">
            <interceptor-ref name="loginedCheck" />
            <interceptor-ref name="defaultStack" />
        </interceptor-stack>
   </interceptors>
   <!--攔截器配置結束-->

   <!--Action節點配置開始-->
   <action name="user_*" class="com.msp.struts.UserAction" method="{1}">
    <result name="success">jsp/user/User_list.jsp</result>
    <result name="add">jsp/user/User_add.jsp</result>
    <result name="update">jsp/user/User_update.jsp</result>
    <result name="error">jsp/login.jsp</result>
    <result name="list" type="redirect">user_getAllUserlist</result>
    <interceptor-ref name="mystack" />//攔截器棧的引用
   </action>   
 <!--Action節點配置結束-->

  </package>

</struts>



發佈了36 篇原創文章 · 獲贊 11 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章