欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    马士兵struts2学习笔记详细版.docx

    • 资源ID:9316975       资源大小:22.71KB        全文页数:22页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    马士兵struts2学习笔记详细版.docx

    1、马士兵struts2学习笔记详细版1、02_尚学堂马士兵_Struts2_Struts2_HelloWorld_2.avi 指定Tomcat的目录,指定JDK搭建开发环境(拷贝jar包,复制struts.xml文件 此文件不要放在WEB-INF下面,应该放到src下面 ),在web.xml文件中:struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/* 其中/* 不要写/*.do 或者 /*.action约定俗成用/*2、04_尚学堂马士兵_Struts2_Struts2_Hell

    2、oWorld_3.avi(1)!-:常量的配置 - action -相应的处理类或页面 - /Hello.jsp(2)struts.xml不自动提示的解决办法: window-perferences-XML catalog-add-key Type=URI key=*.dtd3、09_尚学堂马士兵_Struts2_Struts2_HelloWorld_7_2.avi struts2的执行流程: 当用户在浏览器中敲入要访问的地址的时候,浏览器会将这个请求发送给tomcat然后tomcat判断应该交给那个WebApplication来处理,然后会读取它下面的web.xml配置发现有配置:strut

    3、s2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*因为 为/* 它会过滤所有的请求然后就交给filter类org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter处理执行调用doFilter()方法,然后再方法中会读取struts-xml文件,根据用户请求的地址找到相应的package、 action、 result、然后将相应的页面返回给浏览器4、10_尚学堂马士兵_Struts2_Struts2_Na

    4、mespace_命名空间.avi(1)namespace决定了action的访问路径,默认为,可以接收所有路径的actionnamespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或者/xxx/yyy/index.actionnamespace最好也用模块来进行命名5、11_尚学堂马士兵_Struts2_Struts2_Action.avi(1)struts1 与struts2的一个重要区别:在struts1中进行多次访问的时候用到的是同一个Action对象。而struts2则是每一次访问都会

    5、创建一个Action对象,所以struts2不会有线程安全问题的发生(2)标签如果没有指定name属性默认返回值为success (3)标签中的class值如果没有配置相应的类,它会调用struts默认的一个处理类的execute()方法.(4)实现struts的处理类的时候不要自己随便写类然后定义execute()方法,也不要实现Action类而要从ActionSupport类继承,可以直接使用它为我们定义好的方法.6、12_尚学堂马士兵_Struts2_Struts2_Path_路径问题.avi(1)struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用

    6、相对路径。虽然可以用redirect方式解决,但redirect方式并非必要。解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)或者使用myeclipse经常用的,指定basePath(2)request.getContextPath()得到项目的名字,一般用来解决路径问题 如果项目为根目录,则得到一个,即空的字条串。request.getscheme()返回的协议名称.默认是http request.getServerName()就是获取你的网站的域名,如果是在本地的话就是localhostrequest.getSer

    7、verPort()获取服务的端口号 7、13_尚学堂马士兵_Struts2_Struts2_ActionMethod_DMI_动态方法调用.avi Action执行的时候并不一定要执行execute方法可以在配置文件中配置Action的时候用method=来指定执行哪个方法也可以在url地址中动态指定(动态方法调用DMI)(推荐) a href=/user/userAdd添加用户 a href=/user/user!add添加用户 前者会产生太多的action,所以不推荐使用配置文件:/user_add_success.jsp/user_add_success.jsp8、14_尚学堂马士兵_S

    8、truts2_Struts2_ActionWildcard_通配符配置.avi 主要学习通配符的使用 通配符可以将配置量降到最低,不过一定要遵守约定优于配置的原则/Student_1_success.jsp/1_2_success.jsp说明:(1)1代表name=Student*后面第一个*,同理2代表第二个*(2).如果action之间有重复配置,struts2会匹配最精确的action。如果通配符配置之间有重复,则看前后配置顺序9、 15_尚学堂马士兵_Struts2_Struts2_用Action的属性接收参数.avi 在继承ActionSupport的类中定义要接受的参数,参数的名称

    9、与Action所传的名称无关在struts2内部调用的是属性的set方法,所以setxxx()的名字一定要与Action后面所传的值是一样的。10、16_尚学堂马士兵_Struts2_Struts2_用DomainModel接收参数.avi 如果要接受的参数的个数很多,我们可以不用定义属性而是直接定义一个对象例如: private User user (set get 方法)在调用Action传值的时候使用user!add?user.name=x&user.age=x的方式进行值得传递。(最常用的方式)11、17_尚学堂马士兵_Struts2_Struts2_用ModelDriven接收参数.

    10、avi 继承ActionSupport类的处理类必须同时实现ModelDriven(实现getModel()在传值的时候使用user/user!add?name=bbb进入处理类的时候会调用getModel()方法返回User对象并且把传过来的值set到里面,注意:此时private User user = new User() 不能只定义,要同时实现这样getModel()才能拿到user对象。12、18_尚学堂马士兵_Struts2_Struts2_2.1.6版本的中文问题.avi 在配置文件中加入: 按照文档说明加入此句可解决中文乱码但是不行这是2.1.6的一个bug,会在下一个版本中修

    11、复 如何解决呢:在web.xml中: struts2!-org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter-org.apache.struts2.dispatcher.FilterDispatcher把过滤器的版本改成老版本的即可解决该问题!13、19_尚学堂马士兵_Struts2_简单数据验证_1.avi 使用addFieldError方法和s:fieldError标签简单处理数据校验public String add() if(name = null | !name.equals(admin) this

    12、.addFieldError(name, name is error); this.addFieldError(name, name is too long); return ERROR; return SUCCESS; 在页面中显示错误信息:14、21_尚学堂马士兵_Struts2_访问Web元素_1.avi注意:web.xml中关于struts的配置一定要采用2.1的,2.0的会取不到这是一个bug(1)通过ActionContext对象取得Map类型的request, session, application HttpServletRequest, HttpSerletSessionSe

    13、rvletContetext:public class LoginAction1 extends ActionSupport private Map request; private Map session; private Map application; /访问此方法,取得相应的对象但是是Map类型 public LoginAction1() request = (Map)ActionContext.getContext().get(request); session = ActionContext.getContext().getSession(); application = Acti

    14、onContext.getContext().getApplication(); /在Map类型的对象中存入相应的值 public String execute() request.put(r1, r1); session.put(s1, s1); application.put(a1, a1); return SUCCESS; /在页面中通过标签取得存入的数据 二种方法(通过标签, 通过原始方式): | | | 我们存入Map中的数据居然可以在request,等对象中得到,那么在struts内部他是将Map中的数据全部复制到了request,session等对象中的 #attr ,可以取得所

    15、有的属性,但是不推荐使用,为了防止同名的情况,造成无法区别。(2)通过实现RequestAware,SessionAware, ApplicationAware 接口获取(最常用 和重要的一种)private Map request; private Map session; private Map application; /DI dependency injection /IoC inverse of control public String execute() request.put(r1, r1); session.put(s1, s1); application.put(a1, a

    16、1); return SUCCESS; Override public void setRequest(Map request) this.request = request; Override public void setSession(Map session) this.session = session; Override public void setApplication(Map application) this.application = application; (3)通过ServletActionContext()取得真实的相应的对象privateHttpServletRe

    17、quest request; privateHttpSession session; privateServletContext application; public LoginAction3() request = ServletActionContext.getRequest(); session = request.getSession(); application = session.getServletContext(); public String execute() request.setAttribute(r1, r1); session.setAttribute(s1, s

    18、1); application.setAttribute(a1, a1); return SUCCESS; (4)通过实现ServletRequestAware接口获得相应的对象privateHttpServletRequest request; privateHttpSession session; privateServletContext application; public String execute() request.setAttribute(r1, r1); session.setAttribute(s1, s1); application.setAttribute(a1,

    19、a1); return SUCCESS; Override public void setServletRequest(HttpServletRequest request) this.request = request; this.session = request.getSession(); this.application = session.getServletContext(); 15、23_尚学堂马士兵_Struts2_模块包含可以将别的写好的配置文件直接包含到struts得配置文件中,方便多人开发避免不必要的配置文件冲突.login.xml/user_login_success.jsp16、24_尚学堂马士兵_Struts2_默认Action!- 当配置文件中没有用户要访问的Aciton的时候,会调用 /default.jsp 17、27_尚学堂马士兵_Struts2_结果类型_result_type_1ResultType的最常用的几种配置:(四种配置分别代表了四种不同的跳转方式) /r1.jsp /r2.jsp r1 r2 !-当要跳转的Action在别的包下的时候 应该


    注意事项

    本文(马士兵struts2学习笔记详细版.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开