SSH框架之Struts2(初学)学习第一天

环境搭建

学习使用环境

	开发环境:idea 集成开发环境
	服务器:tomcat 7.0.46

搭建步骤

第一步:创建Java web项目

	创建一个strutsDemo项目

第二步:导入jar包

	导入struts2最初需要的几个相关jar,如下图:

struts2环境搭建所需jar清单
以上相关jar可以到 阿里云Maven库 中去找

第三步:配置web.xml文件

	在下面的web.xml文件中配置struts2的前端控制器
	此处是接管请求的操作
	注意一点:对filter-mapping中的
	<url-pattern>*.action</url-pattern>
	此中间的值不一定就是 *.action
	也可以是 /*就直接和我们最初接触的servlet的请求一样
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
           version="3.0">
    <!--配置Struts2 的前端控制器
    Struts2 框架的开始工作入口
        接管请求
        -->
<filter>
    <filter-name>struts</filter-name>
    <!--Struts2提供的控制器类-->
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
    <filter-mapping>
        <filter-name>struts</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>
</web-app>

第四步:创建action 包

	在此处要注意的一点就是在创建包名的时候最后要以action结尾
	例如 com.struts2.action
	创建完成后在里面创建HelloAction.java 命名自定义
public class HelloAction {
    /**
     * 在Struts中所有的业务都为public
     * 返回值为String,所有业务方法都没有参数
     * 方法可以自定义,默认execute()
     */
    public String execute(){
        System.out.println("hello");
        return "success";
    }
    public String HelloWorld(){
        return "success";
    }
}

在此类也可以去实现Action接口
此接口类在 com.opensymphony.xwork2.Action里面,不要实现错了接口

public class TestAction implements Action {
    @Override
    public String execute() throws Exception {
        return "success";
    }
}

第五步:添加struts.xml文件并配置该文件

创建文件
创建struts.xml文件时名称一定只能是这个,并且创建的位置在src根目录下

目录结构
配置文件
相关的配置各个参数在代码里面进行了详细的解释

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <!--package 分模块管理
        name 自定义,但是不能重复
        namespace 命名空间 和url请求路径相关
        例如  / 请求为 /hello.action
            /user  请求为/user/hello.action
        extends 必须直接或者间接继承struts-default
    -->
    <package name="default" namespace="/" extends="struts-default">
        <!--
        配置url和处理类的方法进行映射
        name 为请求的名称,不用加后缀
        com.opensymphony.xwork2.ActionSupport是默认类
        method是指定请求的方法,默认为execute
        -->
        <action name="hello" method="execute" class="com.struts2.action.HelloAction">
            <!--结果集的配置
            name结果集名称  和处理方法的返回值匹配 默认为success 可以自定义
            Struts2提供了五个放回结果:success none input error login
                ACTION.SUCCESS 执行成功,并且进行跳转页面
                ACTION.NONE 执行成功 不需要页面的跳转
                ACTION.ERROR 执行失败
                ACTION.INPUT 要执行该action需要更多的输入条件
                ACTION.LOGIN 需要登录后才能执行
             type 指定响应结果类型
                默认dispatcher 转发
                redirect 重定向
                redirectAction 重定向到action
             result的值为跳转页面 不加 /  相对 namespace路径,建议写绝对路径
            -->
            <result name="success" type="dispatcher">/hello.jsp</result>
        </action>
        <action name="helloWorld" method="HelloWorld" class="com.struts2.action.HelloAction">
            <result name="success" type="redirect">/hello.jsp</result>
        </action>
        <action name="test" class="com.struts2.action.TestAction">
            <result name="success" type="dispatcher">
                /hello.jsp
            </result>
        </action>
    </package>
</struts>

第六步:view页面的处理

View的页面没有过多的装饰,只是添加了一点文字
以下就是hello.jsp页面 该页面将是各个请求后到达的页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>hello world</title>
</head>
<body>
    <h3>这是我的第一个Struts2案例</h3>
</body>
</html>

第七步:调试

操作完毕后将我们的项目发布到tomcat上然后进行请求的测试
第一个请求 hello.action 我们将会看到下面的显示默认配置的是dispatcher 请求转发
在这里插入图片描述
第二个请求helloWorld.action 此处我们设置的redirect进行重定向页面
在这里插入图片描述
当点击enter后将会显示出来
在这里插入图片描述
页面显示出来,并且直接重定向到hello.jsp页面

以上的是action类在没有实现Action接口的操作


下面我们来看下当实现了Action接口的操作

public class TestAction implements Action {
    @Override
    public String execute() throws Exception {
        return "success";
    }
   }

所对应的struts.xml文件的内容

<action name="test" class="com.xingchi.action.TestAction">
            <result name="success" type="dispatcher">
                /hello.jsp
            </result>
</action>

之后请求test.action显示如下视图
在这里插入图片描述

总结

必须要注意的一点就是在创建struts.xml文件的时候名称一定只能是这个,不然的话项目对于请求url无法处理

今天学习的内容就分享到这里,大家可以在评论区留言讨论哦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值