博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何学习struts并写第一个程序HelloWorld
阅读量:4477 次
发布时间:2019-06-08

本文共 1879 字,大约阅读时间需要 6 分钟。

    在编写这个程序前,我觉得盲目地去跟着视频来敲代码或者看完视频后就去练习并不是个好办法。我的做法是:一、去把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文件夹下,修改成以下:

/Hello.jsp

 

 对于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+"/";%>              My JSP 'index.jsp' starting page    
HelloWorld!

 

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

 

转载于:https://www.cnblogs.com/liujianhui001/p/4580750.html

你可能感兴趣的文章
Android无法删除项目+导入项目报错
查看>>
poj 2349(最小生成树应用)
查看>>
python接口自动化测试二十五:执行所有用例,并生成HTML测试报告
查看>>
c# 指定的存储区提供程序在配置中找不到,或者无效
查看>>
最简陋的python数据
查看>>
第一堂java web课
查看>>
操作系统简介
查看>>
第1周小组博客作业--1703班06组
查看>>
vue项目中icon图标的完美引入
查看>>
C语言指针
查看>>
Java的安装
查看>>
0920 JSON数据 蓝懿
查看>>
Azure Cosmos DB 使用费用参考
查看>>
【嵌入式开发】写入开发板Linux系统-模型S3C6410
查看>>
C# 子线程与主线程通讯方法一
查看>>
006——修改tomacat的编码
查看>>
《C程序设计语言》笔记 (八) UNIX系统接口
查看>>
git常用命令
查看>>
Android必知必会-获取视频文件的截图、缩略图
查看>>
(转)理解Bitblt、StretchBlt与SetDIBitsToDevice、StretchDibits
查看>>