Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
工作原理如下:
用Struts来实现登录:
1、导入Struts的jar包
2、在web.xml中配置actionServlet(可以在Struts的实例中拷贝)
<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下
4、根据上面的约定,建立相关的类和jsp
5、编写这些类和jsp
5.1、LoginAction
继承Action,重新ActionForward方法,四个参数,mapping中解析了Struts-config.xml文件,form收集了表单提交来的数据。后面是request和response。
/**
* 登录action
* 负责取得表单数据,调用业务逻辑,返回转向信息
* @author 曹学成
*
*/
public class LoginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginActionForm laf= (LoginActionForm)form;
String username=laf.getUsername();
String password=laf.getPassword();
if("admin".equals(username)&&"admin".equals(password)){
return mapping.findForward("success");
}else{
return mapping.findForward("error");
}
}
}
5.2、LoginActionForm
/**
* 登录actionForm,负责收集表单数据
* 表单的属性,必须和ActionForm中的get和set的属性一致
* @author 曹学成
*
*/
@SuppressWarnings("serial")
public class LoginActionForm extends ActionForm {
private String username;
private String password;
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;
}
}
5.3、login.jsp
action属性为login.do不能加/ , do要和web.xml中的 <url-pattern>*.do</url-pattern>一致
<form action="login.do" method="post">
用户:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="denglu"><br>
</form>
5.4、在success.jsp和error.jsp中分别写入登录成功、登录失败。
6、演示