Struts执行流程及原理懂的说下
用Struts写了一个登陆页面 LoginAction.java  LoginForm.java
Login.jsp  LoginSuccess.jsp   LoginFailure.jsp  struts-config.xml  
web.xml  package cn.itcast;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;public class LoginAction extends Action { @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginForm loginForm = (LoginForm)form;
// System.out.println("123");
if(loginForm.getUsername().equals("itcast")){
return mapping.findForward("loginSuccess");
}else{
return mapping.findForward("loginFailure");
}

}}package cn.itcast;import org.apache.struts.action.ActionForm;public class LoginForm extends ActionForm {
private String username = null;
private String password = null;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}
Login.jsp 里面主要语句
<body>
   <form action="<% request.getContextPath();%>/login.do" method="post" >
    username:<input type="text" name="username"><br>
    password:<input type="password" name="password" >
    <input type="submit" value="login">
   </form>
  </body>LoginFailure.jsp 中  
<body>
   Login Failure!!~
  </body>
LoginSuccess.jsp 中 
  <body>
    Success in login!
  </body>    固定的格式我这里就不复制上来了 
struts-config.xml
<struts-config>
<form-beans>
<form-bean name="loginForm" type="cn.itcast.LoginForm"></form-bean>
</form-beans>

<action-mappings>
<action path="/login" name="loginForm" type="cn.itcast.LoginAction">
<forward name="loginSuccess" path="/LoginSuccess.jsp"/>
<forward name="loginFailure" path="/LoginFailure.jsp"/>
</action>
</action-mappings>
</struts-config>web.xml<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
 
这是基本代码  我想知道 这个运行的流程是怎么样的 从登陆页面开始 输入值以后  会跳到哪  会调用谁谁谁  一步步的  然后跳到哪个页面 或跳到哪个类中从web.xml 或用struts-config.xml中查找了 之类 请懂的人 帮我解释一下 让我能理解一下 原理 把这个执行过程 说一说 

解决方案 »

  1.   

    首先你启动TOMCAT的时候,它会读你两个文件,一个是WEB.xml,另一个就是struts-config.xml,如果其中有类找不到,它就会报错了~~~接下来就是你输入数据,它会将数据放入ACTION中去处理,然后在进行跳转到别的页面,其中跳到哪里去就看你的struts-config.xml中的<forward name="loginFailure" path="/LoginFailure.jsp"/>就是会跳到那个LoginFail.jsp的页面中~~~其实这只是我的理解,希望有高手能帮你解释吧~~~~
      

  2.   

    建议你用dug运行...你慢慢会更清楚流程...试试...这样比别人说,了解得更加清楚...相信自己可以dug看清楚代码...开始不了解不要紧,慢慢就会明白的..加油!!
      

  3.   

    struts1.x与struts2.x原理有区别,可以分开理解。
      

  4.   

    启动Tomcat,加载web.xml,初始化所有Servlet,其中包括ActionServlet,初始ActionServlet时,它会加载struts-config.xml文件并解释,把path和Action类对应好;当ActionServlet拦载到客户端的Action请求时,根据请求的path找到Action类,然后执行,返回一个forward的字符串,根据字符串,在struts-config.xml配置文件中找到要跳找的文件,然后forward。恩,这是我的理解!!!