总结搭建Struts框架步骤以及原理

1.手动下载相应的jar包,也可以使用maven管理jar包

总结搭建Struts框架步骤以及原理_第1张图片

       
        <dependency>
            <groupId>org.apache.strutsgroupId>
            <artifactId>struts2-coreartifactId>
            <version>2.5.1version>
        dependency>

2.在web.xml中添加struts.xml核心过滤器

过滤器写法有两个版本(匹配不同版本的struts),最新的是org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
解压jar包可以看见这个过滤器类的路径。官方文档也有提及这个变化
http://struts.apache.org/core-developers/web-xml.html
我在使用idea配置核心过滤器的时候遇到了找不到类的问题,解决方法记录在了博客中
https://blog.csdn.net/julse/article/details/79547615

3.新建一个struts.xml文件

使其继承default-struts.xml.将此文件夹放置在src目录下,这样stuts.xml就会随编译后的源代码发布到tomcate服务器上。如果项目有报错,可以去发布项目的文件夹下面检查这个文件有没有被拷贝过去。
总结搭建Struts框架步骤以及原理_第2张图片

4.在struts.xml中配置action

总结搭建Struts框架步骤以及原理_第3张图片

5.发布项目并在浏览器中访问

http://localhost/user/user.action
注意:我配置的tomcate端口号就是浏览器默认端口号80,路径不包括项目名称。
分析struts的工作流程就是看请求的转移:/user/user.action

分析struts的工作过程(原理)

工作流程:
1.核心过滤器拦截以.action结尾的请求,将拦截的请求交给struts处理。正则匹配请求

<url-pattern>*.actionurl-pattern>

2.struts里面有很多包(package),每个包管理不同的命名空间(namespace),以/user开头的请求进入命名空间为“/user”的包

<package name="user" namespace="/user" extends="struts-default">

3.包里面可以有很多的action,分别处理这个模块下的不同功能,user.action就分配给了名(name)为“user”,类(class)为UserAction的“action”处理了。此处的method指的是默认调用的java类中的方法

 "user" class="cn.julse.predomSSH.action.UserAction" method="list">

Java类中的方法list()【这个java类需要继承ActionSupport,这样便于调用ActionSupport中为action写好的方法】

public class UserAction extends ActionSupport {
     
    private ArrayList userList;
    //=====================
    private UserDAO userDAO = new UserDAO();
    public String list(){
        try {
            userList=userDAO.getAll();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return "list";
    }
}


4.Java类处理完毕之后,返回一个字符串,这个字符串必须被action中的一个result匹配,便于返回指定的页面给用户。这里返回的是“list”

<result name="list">/users/users.jspresult>

即是返回了名为list的结果,指向/users/users.jsp页面

图解Struts工作原理

总结搭建Struts框架步骤以及原理_第4张图片

你可能感兴趣的:(javaweb,学习笔记)