• Struts2之HelloWorld


    首先既然是开发Struts程序的话,那么自然需要用到Struts2开发包,Struts2是apache旗下的开源框架,所有的开发包和源代码都可以在Apache官网下载。

    那么,就来开始编写第一个Struts2程序。

     

    1、新建一个Dynamic web project。 把必须的java包拷贝到lib目录下。

                至此准备工作就完成了,下面开始编写第一个Hello World!!!

            2、首先,struts2采用的是拦截器原理,所有的请求都会被一个过滤器给拦截,所以需要在web.xml文件中配置如下的过滤器,来过滤所有的请求。

    1   <filter>
    2       <filter-name>struts2</filter-name>
    3       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    4   </filter>
    5   <filter-mapping>
    6       <filter-name>struts2</filter-name>
    7       <url-pattern>/*</url-pattern>
    8   </filter-mapping>

     3、编写Action,要想实现Struts2程序有三种方法

    ①实现Action接口(com.opensymphony.xwork2.Action

    ②继承ActionSupport类 (com.opensymphony.xwork2.ActionSupport)

    ③继承一个自定义的类 

        由于ActionSupport类已经实现了Action接口,而且提供了更加丰富的操作方法,所以一般采用继承ActionSupport类的方式。

      1 package com.fuwh.struts2;

     2 
     3 import com.opensymphony.xwork2.Action;
     4 
     5 public class HelloWorld implements Action{
     6     
     7     private String HelloWorld;
     8     public String getHelloWorld() {
     9         return HelloWorld;
    10     }
    11     public void setHelloWorld(String helloWorld) {
    12         HelloWorld = helloWorld;
    13     }
    14     @Override
    15     public String execute() throws Exception {
    16         // TODO Auto-generated method stub
    17         HelloWorld="世界你好!!!";
    18         return SUCCESS;
    19     }
    20 
    21 }

     4、Action编写好了之后,需要编写一个struts.xml的配置文件,来管理Action的跳转关系

     <?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="helloWorld" extends="struts-default">
            <action name="hello" class="com.fuwh.struts2.HelloWorld">
                <result name="success">HelloWorld.jsp</result>
            </action>
        </package>
    </struts>

     5、最后来编写HelloWorld.jsp页面

     <%@ page language="java" pageEncoding="UTF-8"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Insert title here</title>
    </head>
    <body>
    ${HelloWorld}
    </body>
    </html>

     6、将项目发布到服务器,请求如下连接,就大功告成了

     http://localhost/Struts2/hello

     7,最后来谈谈Struts2的工作原理

        

     
    当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器
    经过Other filters(SiteMesh ,etc),需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。
    FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象。
    ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N)一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面。
    拦截器(Interceptor N)会再被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和(核心控制器)(FilterDispatcher)。
  • 相关阅读:
    最新屏蔽微信举报方法
    C# WIN 生成机器码
    Quartz.net的快速简单上手使用以及防止IIS回收停止Job的处理
    MVC、Web API 请求接口报错“自定义错误模块不能识别此错误。”解决
    获取微信短链接的官方接口
    Window 通过cmd查看端口占用、相应进程、杀死进程
    微信域名检测、防封,微信跳转技术揭秘(二) -- 微信跳转揭秘
    微信域名检测、防封,微信跳转技术揭秘(一) -- 域名检测原理及防封方案
    各种比较方便给力的小工具
    《Git学习指南》学习笔记(三)
  • 原文地址:https://www.cnblogs.com/zerotomax/p/5596707.html
Copyright © 2020-2023  润新知