/***************************************************搭建一個最基本的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>