Struts1入门

17 篇文章 0 订阅

原文出自搬砖工,需要转载请注明出处。


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>
9.运行结果

六、Struts官网链接
Struts下载地址
Struts官网

tips:struts的jar包可以参考Struts给的示例的lib里面jar包来导入

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值