JAVA网页设计Struts开辟技能
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。技能Struts开辟技能在履历了《中国电信年夜客户知心服务》项目标开辟和今朝正在举行开辟中的《中国电信总部谋划剖析》项目,累计了一些关于Struts1.1和Tiles开辟的一些手艺和技能,特写出来,便利今后的开辟,同时也信任能给读者在开辟Struts供应一些匡助
模块设置
1.Struts设置文件界说
关于体系中的某个模块,必要在开辟前界说该模块的设置,该struts的设置文件定名为:
struts-config-xxx.xml
xxx为模块的小写英文名或缩写,如:struts-config-sysman.xml
注重:两头为“-”,而不是“_”毗连符
一致保留在“WEB-INFxml”文件夹下,并必要在web.xml中增加响应的设置文件
地点,详细以下例:
…
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml,/WEB-INF/xml/struts-config-pages.xml,/WEB-INF/xml/struts-config-sysman.xml</param-value>
</init-param>
…
注重:必要用“,”毗连符离隔各个设置文件名
别的,一切的静态jsp必要经由过程设置文件界说其“.do”情势的会见,保留在
struts-config-pages.xml文件中,内容以下例:
…
<!--主页转向-->
<actionpath="/main"type="org.apache.struts.actions.ForwardAction"parameter="/main.jsp"/>
…
2.Tiles设置文件界说
体系的框架设置文件为tiles-defs_zh_CN.xml(经由过程.properties属性文件撑持国际化使用,默许是tiles-defs.xml),模块的框架布局必要界说在内里,以下例:
…
<!--界说默许首页-->
<definitionname="default.frame"path="/layouts/defaultLayout.jsp">
<putname="title"value="接待进进电信谋划剖析体系"/>
<putname="header"value="/top.jsp"/>
<putname="body"value="default.body"/>
<putname="footer"value="/buttom.jsp"/>
</definition>
<!--界说默许首页的body-->
<definitionname="default.body"path="/layouts/main.jsp">
<putname="logon"value="/logon.jsp"/>
<putname="date"value="/layouts/date.jsp"/>
<putname="linkSite"value="/layouts/link.html"/>
</definition>
…
框架定名标准按“体系(子体系).功效模块.页面模块”,如下面的“default.frame”
在struts-config-pages.xml文件中的设置的页面action能够如许写:
<actionpath="/main"type="org.apache.struts.actions.ForwardAction"parameter="default.frame"/>
如许就不用独自写一个tiles:insert的页面,以下:
<tiles:insertdefinition="vip.warn.day"flush="true"/>
3.模块中的正文
不仅必要在程序中增加需要的正文,在界说设置文件的时分也必需必要增加响应正文,次要是在struts-config-xxx.xml和tiles-defs_zh_CN.xml这些文件中增加正文,要把action或设置模块的功效注释分明,放在设置项的后面,拜见下面的设置文件
4.关于设置文件的编纂
不克不及利用Jbuilder内里的xml编纂功效,由于JB会主动地改动xml内里的编码和内容,因而,对xml设置文件的编纂,要利用编纂软件,如UE等
事务界说
事务对应的类次要有Action、ActionForm,另有jsp中提交的“.do”界说,和页面举措的提交,以login登录为例:
1.类的定名界说(首字母需年夜写)
情势为“举措名+Action/Form”
如:LoginAction.class、LoginForm.class
2.页面地点界说(首字母需小写)
假如有两个单词以上,第二个单词首字母年夜写,依此类推
情势为“举措名”
如:login.do或loginSys.do
jsp文件定名也按此标准
3.页面举措界说
由于jsp页面中的Form对应ActionForm,其自己有action这个属性,以是页面举措假如界说也为action,会引发不用要的贫苦,以是,把页面举措一致界说为“act”,
如必要编纂某笔记录,地点以下:
“/editRecord.do?act=Edit”
如必要删除,地点以下:
“/editRecord.do?act=Delete”
4.关于菜单和操纵事务触发的把持机制
因为体系中的菜单和操纵都是由“.do”情势向服务端发哀求的,因而必要一套机制来把持哪些是对菜单的事务哀求,哪些是对操纵的事务哀求;
我们在体系中引进了Filter过滤器,对一切哀求举行把持,和判别用户是不是登录和是不是有对资本(菜单等)会见权限等;
商定:
jsp页面上关于体系中菜单的哀求都是“GET”办法,关于操纵的Action都是“POST”办法;
有了如许的商定,在Filter中先判别request的哀求办法,假如是“GET”办法,则以为是对菜单的哀求,以是往“菜单表”依据哀求地点读取响应的纪录,并读取用户的权限表,判别用户的菜单权限;
假如是“POST”的办法,则以为是对操纵的哀求,并提取request中的“act”举措,举行对用户的权限点的判断。
参数信息猎取
1.大众参数信息经由过程Plugin体例在Web服务启动时将变量放进application中,使得在任何必要该变量的jsp中都能够挪用;
体例以下:
publicvoidsetServletContext(ActionServletactionServlet){
try{
ServletContextsc=actionServlet.getServletContext();
//SysInitPwd
sc.setAttribute(Constants.SYS_INIT_PWD,SelectLists.getSysConfig("PWDINIT"));
…
在action等程序中的挪用体例:
getServlet().getServletContext().getAttribute(“…”);
2.关于页面上必要展现的数据只管寄存在request这个局限里,能够加重服务器端内存负载,体例以下:
//挪用员工处置类
StaffDealsd=newStaffDeal();
//依据员工形态查询员工
ArrayListal=sd.qryStaff(strState);
//放进request
request.setAttribute("staffInfo",al);
3.公有的或必要依据用户的属性来猎取参数信息的,能够在tiles的界说中利用“controlClass=xxx”这个体例猎取,设置以下例:
<definitionname="vip.welcome"path="/vip/welcome.jsp"controllerClass="viptx.logic.vip.welcomeAction"/>
需implementsController中的perform办法,代码以下例:
publicvoidperform(ComponentContextcomponentContext,
HttpServletRequestrequest,
HttpServletResponseresponse,
ServletContextservletContext)throwsIOException,ServletException{
HttpSessionsession=request.getSession();
//Getcurrentsession.
Useruser=(User)session.getAttribute(Constants.USER_KEY);
if(user==null){
returnnull;
}
Stringuid=user.getUserid();
Stringsql="selectuserid,contentfromti_salutatorywhereuserid= Java是一种计算机编程语言,拥有跨平台、面向对java http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 是一种语言,用以产生「小应用程序(Applet(s)) Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 Java是一种计算机编程语言,拥有跨平台、面向对java 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 是一种使用者不需花费很多时间学习的语言 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
页:
[1]
2