java可以解决哪些问题_?为什么要学这个技术(有什么优秀的地方,可以解决哪些问题?...

今天来总结一下Struts2的知识点,学习编程我的思路一般是这样的:

① why ?为什么要学这个技术(有什么优秀的地方,可以解决哪些问题?)。

②what ? 这个技术是什么玩意?有什么牛逼的地方值得我们学习,这个技术的核心是什么。

③How ?  怎么学?基本技术都是自己自学的,我的学习思路就是,看视频,拿例子来学习知识,在敲代码的过程中理解问题。在此期间如果遇到不懂得或者是感觉很模糊的地方,及时的上网找相应的博客进行理解。基本上就是在敲代码中学习技术。并且对技术要及时的进行总结,但是我不推荐一个知识点总结一次,这样根本没有那么多的时间,最好的是看完之后,从全局出发,对整个知识进行积累和总结,在总结的过程中,多看一下其他人的博客,集思广益,收获会很大。

④Do !  做!做是什么?是理论到实践的必经之路,是你成为大牛的必经之路,找个项目,认真的做完,对一些常用的技巧和方法进行归纳整理,发布到自己的博客上,在做项目的时候,有很多的途径,我最喜欢 的是看视频了,只要你前面没偷懒,认真的学习了,在这个时候你就会发现都是so easy的事情。在做项目的时候,要注意的是,遇到不会的,或者是有新的理解一定要去探索,这样会知道的越来越多,同时为了防止遗忘,及时的对博客进行更新,或许你遇到的问题也可能是别人遇到的,这样你的人气值就上来了!

比如对Struts2 的学习。其实大约一周前就学完了,但是懒癌犯了,懒得动,一直拖着没整理。因此提醒大家:当日事,当日毕!当日事,当日毕!当日事,当日毕!因为明天还有很多事情要做......

在没有进行Struts2 的学习之前,我用jsp+Servlet+javaBean+mysql+Jdbc+(bootStrap/EasyUi/Layui)开发了5个说大不大说小不小的狗屁项目,那tm写的叫一个累啊......但是很爽啊,哈哈哈,因为要实现一个方法比如说分页,那基本上就可以从底干到顶,熟悉整个流程。印象很深的一个功能是文件上传和下载,如果使用Struts那简直简单的.....超级爽啊。但是没学这个之前,我tm累的和狗一样,还是学习了别人的博客,自己加以改造,成功实现了数据库mysql存文件名,服务器存储文件,对文件能够进行上传和下载。虽然累但是对这部分功能还是了解的比较好了。框架确实好,用起来很爽。但是我还是喜欢研究基础的东西,这样在学别的框架那就是轻车熟路了。话不多说我们开始对Struts2进行剥皮抽筋的解剖整理。我接下来将主要从以下几个方面进行总结:

Struts2是什么玩意?核心?主要的功能?

Struts2的核心知识;

Struts2牛逼的拦截器,卧槽这才是最牛的核心!

Struts2的值栈和OGNL牛逼啊!

Struts2的标签三大类是什么?

Struts2的国际化有哪些东西啊?

Struts2的验证框架简单吗?

Struts2文件上传和下载为什么如此简单?

Struts2防止重复提交做的努力?

Struts2的小技巧(持久跟新......

一  Struts2是什么玩意?核心?主要的功能?

Struts2在用户请求、模块化处理方面、页面展示表现的很牛逼。

应用基本处理流程:Web容器在接收到HttpServletRequest请求传递给一个过滤器ActionContextCleanUp,之后经过Otherfiters。接下来调用FilterDispatcher核心控制器,其通过调用ActionMapper确认请求的是哪一个Action.ActionMapper返回一个收集Action详细信息的ActionMaping对象。

之后ActionProxy获得FliterDispatcher传递来的控制权,ActionProxy调用配置管理器(Configuration Manager)从配置文件struts.xml读取到配置信息。之后创建ActionInvocation对象,ActionInvocation在调用Action之前依次的调用所用的配置拦截器(Interceptor N),一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行Result,同时Result可以调用一些模板(Jsp,FreeMarker,Velocity或者是其他的)来呈现页面。

在调用拦截器之后,我们进入拦截器(Interceptor N)会被执行(顺序与Action执行之前相反)。之后响应(HttpServletResponse)被返回在web.xml中的配置的那些过滤器和核心控制器(FilterDispatcher)。

下面我们以一个实际的例子进行讲解。首先我们进行Struts2版本的HelloWorld的实现过程。

一 新建一个Dynamic web Project项目

第一步:File->New->Other->在搜索框里面搜索Dynamic Web Project.

第二步:之后新建一个Web的项目(选择Dynamic web module Version为2.5) 完成之后finish。

二  引入必须的jar包

对于使用Struts2需要引入一些核心的jar包,其中的所需的jar包如图1-1所示:

图1-1 核心jar包(放在lib文件夹中)

三 配置过滤器(web.xml文件中)

对web.xml进行配置,主要是配置过滤器,将所有的请求全部交给org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter核心控制器处理。配置内容如下;

复制代码

1

2     Struts2

3    

4 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

5

6

7

8     Struts2

9     /*

10

复制代码

通过配置拦截器地址(/*将所有的HttpServletReqeust请求全部交给了名字叫做Struts2的拦截器(Struts2)进行处理,在前面的拦截器,定义的名为Struts2拦截器(Struts2)被捕获,进而调用了定义的拦截器类org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter进行处理。

四  配置Struts.xml文件

struts.xml文件中必须的内容:

1 <?xml version="1.0" encoding="UTF-8" ?>

2

将struts.xml文件放在默认的src下。如图1-2所示:

图1-2 struts文件存放

五、创建HelloWorldAction类,并在struts中进行配置。

创建一个HelloWorldAction类,放在yxs.Action包下。在HelloWorldAction类中生成默认的 execute()方法。具体代码如下:

复制代码

1  public class HelloWorldAction implements Action{

2           /* (non-Javadoc)

3            * @see com.opensymphony.xwork2.Action#execute()

4 */

5           @Override

6           public String execute() throws Exception {

7               // TODO Auto-generated method stub

8               System.out.println("执行了Action的默认构造方法!");

9               return SUCCESS;

10          }

11  }

复制代码

该类实现了Action接口,execute方法返回SUCCESS。在struts.xml中进行配置:

复制代码

1

2

3    

4

5        

6        

7             helloWorld.jsp

8        

9    

10

复制代码

六 创建helloWorld.jsp,部署tomcat实现HelloWorld

helloWorld.jsp文件代码如下:

复制代码

1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值