如何学习struts并写第一个程序HelloWorld

在编写这个程序前,我觉得盲目地去跟着视频来敲代码或者看完视频后就去练习并不是个好办法。我的做法是:一、去把Struts框架的原理搞清楚,也可以去struts的官方网站 http://struts.apache.org 查阅,它的原理图如下:

简单介绍一下这个原理图的大致意思:

(1)、客户端发送请求后提交到一系列的过滤器,主要有三层,并且有一定顺序,先是ActionContextCleanUp过滤器,然后再到其他过滤器(SiteMesh等),再到FilterDispatcher过滤器。

(2)、FilterDispatcher过滤器会询求ActionMap该调用哪个action,如果ActionMap决定调用哪个action便把结果传给ActionProxy,ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类.

(3)、ActionProxy创建一个ActionInvocation的实例,同时ActionInvocation通过代理模式调用Action。但在调用之前ActionInvocation会根据配置加载Action相关的所有Interceptor。(Interceptor是struts2另一个核心级的概念)

(4)、最终通过action里的result来找到相应的可视界面(jsp等)并把它传到客户端界面。

我认为如果能够在原始网站看懂它的原理和它的文档,那么你几乎成功了一半了,因为原理你懂了,再者既然你能读懂它的文档那么相信你的英语水平不错,学习能力强,后面的框架学习你都可以自学了。但是如果你看不懂文档,你可以去找度娘问问,我认为如果真是要学好学精一项技术最好是去源网站看最原始的代码,养成良好的查阅资料的习惯,这对于日后的工作是有益无害。我们不能一味地依赖于别人从原始网站翻译过来的东西,我们更应该主动去学习。

  二、下载struts2压缩包,解压后把它的目录看一遍方便日后去查阅资料,同时把这些jar包加到lib文件夹下,以下是我做的时候加进来的包(注:我用的MyEclipse软件):

三、接下来就是开始写HelloWorld程序

先把 解压盘符:\struts-2.3.24\apps\WEB-INF\web.xml考到自己项目下的webroot的WEB-INF文件夹下

再把struts压缩包里的struts文件复制过来,放在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>
  <constant name="struts.devMode" value="true" />
  <package name="default" namespace="/actions" extends="struts-default">
        <action name="hello">
            <result>
            /Hello.jsp
            </result>
        </action>
    </package>
</struts>

对于namespace可以设置成“/”这样访问Hello.jsp就可以直接写http://localhost:8080/HelloWorld/hello就可以访问了,如果像我上面这种写法就得这样写:http://localhost:8080/HelloWorld/actions/hello才可以看到结果否则会报找不到文件的错误。

最后写个Hello.jsp程序如下所示:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ‘index.jsp‘ starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>

  <body>
   HelloWorld! <br>
  </body>
</html>

最后右键点击项目名运行项目,在浏览器地址上输入http://localhost:8080/HelloWorld/actions/hello,就可以看到效果,如下:

时间: 2024-10-16 01:37:00

如何学习struts并写第一个程序HelloWorld的相关文章

从零开始学习PYTHON3讲义(三)写第一个程序

<从零开始PYTHON3>第三讲 本页面使用了公式插件,因博客主机过滤无法显示的表示抱歉,并建议至个人主页查看原文. ? 我见过很多初学者,提到编程都有一种恐惧感,起源是感觉编程太难了.其实,难的也不过是开头第一步,所以中国有古话说,万事开头难. ? 一个人想得到别人的帮助,通常是同别人沟通,请求对方伸出援手.沟通的工具当然是语言,甚至可能还要加上晓之以理.动之以情的表情.手势.比较而言,请计算机帮忙就简单多了,只需要语言就够了. ? 人类沟通的语言,需要两个人都能听懂,比如碰到一个不会中文的

c++的第一个程序-Helloworld

第一个程序 #include<iostream> using namespace std; int main() { cout<<"Helloworld"<<endl; return 0; } 原文地址:https://www.cnblogs.com/intruder/p/12180561.html

汇编语言学习第四章-第一个程序

本博文系列参考自<<汇编语言>>第三版,作者:王爽 前面的几章中我们断断续续的学习了一些指令,但是从来没有完整的通过汇编语言编写一个可执行文件即.exe文件.从本章开始我们将开始使用汇编语言并通过编译器编译链接一个完整的可执行文件. 4.1 一个源程序从写出到执行的过程 如下图所示,为一个完整的汇编程序到执行的过程: 上图的过程可以总结成以下几个步骤: (1) 根据汇编语言语法规则和目标程序工程编写汇编程序.这一步在文本编辑器或者在一些IDE中编写. (2) 通过汇编编译器将编写的

【初学者教程】在电脑上安装Python,写第一个程序

欢迎来到Python的世界 1.存在Python 2和Python 3两个版本,我该用哪个?如果书是关于2的,下载2:如果书是关于3的,就下载3.建议用Python 3,不过用2也是可以的. 2.下载Python.到这里挑一个版本,请注意Windows XP只能安装3.4及3.4以下的版本.https://www.python.org/downloads/ 选一个版本,点进去后,页面底部有一个下载列表:       操作系统是32位,下这个:Windows x86 executable(或MSI

从0开始学Python,学习5小时后第一个程序

1 import random 2 import time 3 input("--世纪赌王争霸赛,正式开赛--\n注:(本赛制采取五局三胜制度)\n敲击 'enter' 键\n即刻加入赌王争霸赛...") 4 i = 1 5 z = 0 6 y = 0 7 x = 0 8 while i <= 5: 9 print('比赛正式开始,第%d局倒计时..reday '%i) 10 for k in range(3,0,-1): 11 print ('\b\b\b'*38,k) 12

struts2第一个程序 Helloworld

1. 新建项目: MyStruts2 2.导入相应的jar包: 3.修改web.xml文件: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping&

【 D3.js 入门系列 --- 1 】 第一个程序HelloWorld

本人的个人博客首页为: http://www.ourd3js.com/  .csdn博客首页为:http://blog.csdn.net/lzhlzz/.转载请注明出处.谢谢. 以下開始用D3.js处理第一个简单问题,先看以下的代码: <html> <head> <meta charset="utf-8"> <title>HelloWorld</title> </head> <body> <p&g

【Python】第一个程序---Helloworld!

对于大多数程序语言,第一个入门编程代码便是"Hello World!",以下代码为使用Python输出"Hello World!": #!/usr/bin/python3 print("Hello, World!") 从入门到... 原文地址:https://www.cnblogs.com/HGNET/p/11997463.html

asp.net mvc3.0第一个程序helloworld开发图解

步骤一:新建asp.net mvc3.0项目 (选择Razor模板) 步骤二:创建控制器 步骤三:控制器源码内右键创建对应视图 步骤四:控制器内添加代码 步骤五:视图页面输出内容 步骤六:F5调试