博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2 入门
阅读量:6124 次
发布时间:2019-06-21

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

   个人心得,错误在所难免,还望同门不吝指正,转载请注明出处.

  1)为什么不用基础的servlet开发?用struts开发(给你一个学习struts的理由)

      一句话:简化开发,便于维护,提高效率(针对中大型应用).

          详细:传统的servlet开发,有很多缺点,我曾写一个学生管理,十几个servlet,后来我根据功能模块,分成了几个servlet,一个servlet根据获取的请求method的不同,执行不同的方法,但一个servlet就包含很多方法,看起来很累赘,而且servlet很多东西都是写死的(方法返回结果--->跳转路径,业务需求--->方法),编译后无法更改,比如以前我注册后跳转到登录页面,现在需求改了,要求跳转到首页,这时要改代码,再重新编译,然后发布,可能你觉得无所谓啊,但是对于一个大型的项目来说,重新编译时需要时间的,比如淘宝,暂停服务一个小时,是不是少了很多交易,都是人民币啊.那能不能将这控制跳转的部分抽离出来呢,struts就是这干这事的,通过读取xml配置文件,达到控制的效果,而且只需要写业务逻辑,控制全部由配置文件来做,这样就不需要重新编译,重新读取配置文件就行了.(好处有很多,这里只是简单列一两个)

2)开发流程:

  a) web项目,引入struts2-jar包

  

  b)web.xml 配置核心过滤器

    注意:struts版本不同,核心过滤器的位置和名字会有不同

1 
2
5   
6   
struts2
7      
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
8     
9     
10     
struts2
11     
/*
12     
13   

  c)开发action 

package struts2_test;import com.opensymphony.xwork2.ActionSupport;/**    HelloAction只是一个普通的java类,理论上不需要继承或者实现任何接口,亲测不继承不会报错.     ActionSupport是一个工具类,,此类中实现了很多的实用借口,提供了很多默认方法,这些默认方法包括国际化信息的方法、默认的处理用户请求的方法等,这样可以大大的简化Acion的开发
    所以一般情况(后者说习惯)继承这个类. */public class HelloAction extends ActionSupport{
// ActionSupport public String execute() { //1.这里的方法名字可以任意 但必须和struts.xml里的method属性一致 //2.必须无参数 //3.返回必须String System.out.println("模拟这里调用业务逻辑,service,dao等"); return "success"; //这里字符"success"也是任意 但也是和struts.xml里
里相对应 } } 

 d)配置action src/struts.xml(xml文件位置,名字最好别改,容易报错[找不到])  

success.jsp
error.jsp

注意:  <action>里name="xxx" 是访问路径,如 http://localhost:8080/项目名称/xxx

        class="bbb"是对应的action类的路径(包名.类名的形式)

        method=" aaa"是action类里对应的方法,方法返回的字符标记,会和result里name属性的比对,一样的就跳转到对应的页面,或者路径中

<package name="default" extends="struts-default" >里的default任意字符,package是为了不同包里名字相同时不会冲突,extends="struts-default"是固定写法,

3)整体目录结构如下:

 

  

  

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  最后...博主也是第一次写博客,如果这篇文章对你有一点点帮助,点个赞吧.谢谢支持.

转载于:https://www.cnblogs.com/kingshing/p/7389028.html

你可能感兴趣的文章
拒不承认违法?Uber就无人车上路问题与加州政府展开会谈
查看>>
学习汉语和学习编程的异同点
查看>>
自定义(带属性)标签学习笔记
查看>>
NET Core-学习笔记(四)
查看>>
Veeam 助力 Trend Micro 解决数据保护和灾难恢复挑战
查看>>
WebService就是这么简单
查看>>
Python对字典分别按键(key)和值(value)进行排序
查看>>
Java,Python,Scala比较(三)wordcount
查看>>
python爬虫学习:爬虫QQ说说并生成词云图,回忆满满
查看>>
《Java语言程序设计》大作业报告 九宫格游戏
查看>>
JS-检测浏览器类型及版本
查看>>
[20180316]异步IO和共享服务模式.txt
查看>>
nginx服务器架构(一):基本部署与启动
查看>>
1001号云制造现身2017 MWC,它可以远程操作国内3D打印设备集群
查看>>
快速的搭建JFinal的ORM框架示例
查看>>
ADM325 ECC6 的PA教材
查看>>
PHP中$_SERVER的详细参数与说明
查看>>
敏捷课堂 | 行为驱动开发,让开发做正确的事
查看>>
UAVIA打造远程操控军用无人机,完成不可能完成的任务
查看>>
Nginx在windows环境下的安装与简单配置
查看>>