Struts2 入门

Struts2 入门

1、什么是Struts2

Struts2是轻量级的MVC框架,主要解决了请求分发的问题,重在控制层和表现层

低侵入性,与业务代码的耦合度很低。即业务代码中基本不需要import它的包。

MVC框架Struts2实现了MVC,并提供一系列的API,采用模式化方式简化业务开发过程。


2、为什么用Struts2

Struts2与Servlet对比

优点
1、业务代码解耦,适合团队开发
将请求分发给不同的处理类,从而降低了业务代码的耦合度。
2、提升开发效率
提供了一系列API,可以大大提升项目的开发效率。如:使用
拦截器自动给请求参数转型。

缺点
1、执行效率偏低
需要使用反射、解析XML等技术手段,会降低执行效率。
2、结构复杂,有学习成本
需要花一定成本学习Struts2的API及使用步骤。

Struts2自身的优势

健壮性
   Struts2是一个成熟稳定的框架,目前最稳定的版本是2.1.8

易用性
   Struts2易学好用,几天即可上手

扩展性
   Struts2运用AOP思想,使用拦截器来控制业务控制器Action

侵入性
   Struts2对业务代码依赖性很低,基本不需要import它的包

3、Struts2 - 使用步骤

1、创建WEB项目


2、导入Struts2核心包


导入Struts2最小范围核心包(5个),将这些包复制到新建项目的/WEB-INF/lib目录下。

3、配置前端控制器

<filter>
        <filter-name>Struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
        <filter-name>Struts2</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>

4、创建Struts.xml


在src下,创建名为struts.xml的配置文件。
Struts2配置文件默认要放在src下。
Struts2配置文件默认名称为struts.xml。

struts.xml的格式
可以参考DTD文件,位于核心包根路径下。
可以参考默认配置文件struts-default.xml
也位于核心包根路径下。
配置struts.xml的版本信息及DTD引用。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">

5、编写业务控制器Action
创建业务控制器组件,通常命名为XxxAction,该组件是一个满足JavaBean
规范的类。

在Action中定义业务方法,要满足下列条件:
    方法是public的、返回值为String类型、参数列表为空

编写业务方法
方法内编写业务逻辑代码
返回的字符串与struts.xml(action(result的name属性匹配,即根据
此返回值可以找到对应的result。

6、编写JSP页面

创建JSP页面 ,在页面上写显示部分的代码。

<%@page pageEncoding="utf-8" %>
<html>
<head>
</head>
<body>
    <h1>Hello,Struts2.</h1>
</body>
</html>

7、配置Struts.xml

在struts.xml中配置请求与Action的关系,并在action下,通过result设置转发的页面。

<package name="day01" namespace="/demo" extends="struts-default">
 <action name="hello" class="action.HelloAction" method="sayHello">

<result name="success">
/hello.jsp
</result>
...
</action
</package>

相关属性说明在案例中
package:包,用于对Action进行封装。 
1、name:包名,根元素下可以有多个包,彼此之间不能重名。
2、extends:继承,用于指定继承的包,相当于将继承包下的配置信息复制到了当前包下。
3、namespace:命名空间,用于规定Action的访问路径,必须以“/”开头。 
4、请求Action时,按照如下格式拼写URL:
http://IP:PORT/ProjectName/NAMESPACE/ACTIONNAME

action:业务控制器,用于注册业务控制器组件(类)。 
1、name:action名称,用于规定Action的访问路径。
一个包下可以有多个action,彼此之间不能重名。 
2、class:业务控制器组件,用于指定业务控制器对应的类。

3、method:方法,用于指定访问当前action时要调用的方法。











































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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值