原文出自搬砖工,需要转载请注明出处。
JavaEE学习就从最通用的MVC框架Struts开始学习,然后到Hibernate,最后是Spring。
对于Struts来说,Struts1和Struts2区别较大。有部分人认为只需要了解最新的就可以了,但是把最原始的东西多看一下,对我们程序员来说可能收获更多。毕竟编程,思路是最重要的。
Struts1入门
一、什么是Struts?
Struts是开源框架(MVC)。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。
二、Struts的常用组件
1.ActionServlet
2.Action
3.ActionForm
4.ActionMapping
5.ActionForward
三、Struts的优点
1.基于配置文件的松耦合,Struts中的通常类都被写在配置文件里面了。如:Action、ActionForm、ActionForward等。如果需要修改一些常用配置的话,只需要修改配置文件就可以了。
2.Formbean(ActionForm)解决了验证信息的重新显示需要管理员设置的问题。
3.对数据等信息有集中的验证。
4.支持国际化以及异常信息处理。
四、五大组件介绍
1.ActionServlet
Struts中的最大控制器,是Struts框架的入口,并且封装了Servlet,被配置在web.xml当中
2.Action
小控制器,处理具体的业务逻辑
3.ActionForm
和页面表单对应的一个特殊javabean,负责在页面和控制器之间传递数据。同时还提供了集中验证方法
4.ActionMapping
用来从Struts的配置文件中读取信息
5.ActionForward
页面之间的跳转
五、Struts工程创建步骤
1.创建一个Web工程
2.添加Struts的jar包
3.创建一个Struts配置文件struts-config.xml
4.在web.xml添加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>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
5.创建一个LoginForm,用作Formbean,需要继承ActionForm
package com.demo.form;
import org.apache.struts.action.ActionForm;
public class LoginForm extends ActionForm{
private static final long serialVersionUID = 1L;
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;
}
}
6.创建一个Action类,用来处理业务逻辑,注意它需要继承Action
package com.demo.action;
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;
import com.demo.form.LoginForm;
public class DemoAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//String username = request.getParameter("username");
//String password = request.getParameter("password");
LoginForm loginform = (LoginForm)form;
String username = loginform.getUsername();
String password = loginform.getPassword();
if(username!=null&&username.equals("lwh")){
return mapping.findForward("success");
//request.getRequestDispatcher("/Success.jsp").forward(request, response);
}else{
return mapping.findForward("failure");
//request.getRequestDispatcher("/Failure.jsp").forward(request, response);
}
//return null;
}
}
7.在struts-config.xml中配置Action、ActionForm和ActionForward,注意看他们配置中的其他参数名称以及参数值
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="loginform" type="com.demo.form.LoginForm"></form-bean>
</form-beans>
<action-mappings>
<action path="/login" type="com.demo.action.DemoAction" name="loginform">
<forward name="success" path="/Success.jsp"></forward>
<forward name="failure" path="/Failure.jsp"></forward>
</action>
</action-mappings>
</struts-config>
8.其他代码
登陆页面:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
<form name="loginform" id="form1" action="<%=path %>/login.do" method="post">
<table border="0">
<tr>
<td>name:</td>
<td><input type="text" name="username" id="username" /></td>
</tr>
<tr>
<td>password:</td>
<td><input type="password" name="password" id="password" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="submit"/></td>
</tr>
</table>
</form>
</body>
</html>
成功页面:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
Success!
</body>
</html>
![](http://www.banzg.com/wp-content/uploads/2017/01/UC%E6%88%AA%E5%9B%BE20170103221244-300x105.png)
![](http://www.banzg.com/wp-content/uploads/2017/01/UC%E6%88%AA%E5%9B%BE20170103221319-300x107.png)
六、Struts官网链接
Struts下载地址
Struts官网
tips:struts的jar包可以参考Struts给的示例的lib里面jar包来导入