应用struts写程序,首先要搭建struts环境。
搭建struts环境的步骤:
1.首先要把struts打包好的jar包拷贝到WEB-INF\lib文件夹下。
2.在web.xml文件中配置actionservlet。在struts的bin\webapps文件夹下有struts-blank项目。其中的web.xml文件是标准配置。
<!-- Standard Action Servlet Configuration (with debugging) -->
<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>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3.将标准的struts-config.xml文件拷贝到WEB-INF下,配置相关的标签。
<struts-config>
<form-beans>
<form-bean name="loginForm" type="com.tgb.struts.LoginActionForm"/>
</form-beans>
<action-mappings>
<action path="/login"
type="com.tgb.struts.LoginAction"
name="loginForm"
scope="request"
>
<forward name="success" path="/login_success.jsp"/>
<forward name="error" path="/login_error.jsp"/>
</action>
</action-mappings>
</struts-config>
form-beans标签中配置的为actionform,action-mappings标签中配置的为action信息。Struts的中心控制器就是通过读取这些配置文件,来创建actionform和相应的action的。Forward标签为相应的转向信息,action的execute方法返回的为ActionForward信息,forward标签就是配置的就是其转向的相关信息。
第一个struts程序代码
Login.jsp中代码:
<body>
<form action="login.do"method="post">
用户名:<input type="text" name="username"/><br/>
密 码:<input type="password" name="password"/><br/>
<input type="submit" value="登录"/>
</form>
</body>
LoginAction中代码:
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//相当于实体actionform
LoginActionForm laf = (LoginActionForm)form;
String username = laf.getUsername();
String password = laf.getPassword();
UserManager userManager = new UserManager();
try{
userManager.login(username, password);
return mapping.findForward("success");
}catch(UserNotFoundException e){
e.printStackTrace();
request.setAttribute("msg", "user can't be found,username=["+ username +"]");
}catch(PassWordErrorException e){
e.printStackTrace();
request.setAttribute("msg", "password error");
}
return mapping.findForward("error");
}
}
在利用struts开发程序的时候,就省去了servlet,是因为servlet已经被封装了起来,我们只需要按照它规定的格式去配置struts-config.xml文件,struts中的servlet就会读取这个配置文件来实例化不同的类。这样为我们开发省去了很多时间,也实现了灵活配置。