struts2 与struts1比较和入门小例子

本文介绍了Struts2框架的基本使用方法,包括配置文件struts.xml的设置、Action的实现方式以及如何通过web.xml配置Struts2的核心过滤器。同时探讨了Struts2相较于Struts1的优势,并简单提及了Struts2与Spring框架结合的好处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.struts中加入spring的好处:
spring依赖注入;事务

2.struts2比Struts1多个拦截器
action写法,属性用来封装(就不用request来取值了)

;传值(ValueStack);struts2标签比较简洁;

validate;
3.struts2的入门例子,还是HelloWorld

4.struts2入门知识
struts.apache.org/download.cgi#Struts206
下载Struts2完整版,里面包括示例应用,核心库,全部源代码,相关文

档。
增加Struts2功能,三个步骤:web.xml,lib,struts.xml

 web.xml (配置Struts2的核心Filter)
 <!-- 定义Struts2的FilterDispathcer的Filter -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-

class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
 <!-- FilterDispatcher用来初始化struts2并且处理所有的WEB请

求。 -->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

login.jsp
<%@ page language="java" contentType="text/html;

charset=GBK"%>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form action="Login.action" method="post">
    <table align="center">
    <caption><h3>用户登录</h3></caption>
        <tr>
            <td>用户名:<input type="text" name="username"/></td>
        </tr>
        <tr>
            <td>密&nbsp;&nbsp;码:<input type="text"

name="password"/></td>
        </tr>
        <tr align="center">
            <td colspan="2"><input type="submit" value="登

录"/><input type="reset" value="重填" /></td>
        </tr>
    </table>
</form>
</body>
</html>

当表单提交给login.action时,Struts2的FilterDispatcher将自动起作用,

将用户请求转发到对应的Struts2 Action

Struts2的Action只是一个包含execute方法的普通Java类。
package lee;
public class LoginAction
{
    private String username;
    private String password;

 public String execute() throws Exception
 {
        if (getUsername().equals("scott")
                && getPassword().equals("tiger") )
  {
            return "success";
        }
  else
  {
            return "error";
        }
    }

    public String getPassword()
 {
        return password;
    }

    public void setPassword(String password)
 {
        this.password = password;
    }

    public String getUsername()
 {
        return username;
    }

    public void setUsername(String username){
        this.username = username;
    }
}

struts.xml
<struts>
    <package name="lee" extends="struts-default">
        <action name="Login" class="lee.LoginAction">
            <result name="input">/login.jsp</result>
            <result name="error">/error.jsp</result>
            <result name="success">/welcome.jsp</result>       
        </action>
        <action name="GetBooks" class="lee.GetBooksAction">
            <result name="login">/login.jsp</result>
            <result name="success">/showBook.jsp</result>       
        </action>
    </package>
</struts>

HelloWorld应用的处理流程:
login.jsp 发送请求 web.xml(FilterDispathcher), struts.xml 转发请求

Action 返回。welcome.jsp/error.jsp

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值