仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 477|回复: 11
打印 上一主题 下一主题

[学习教程] JAVA网页编程之Struts进修傻瓜式进门篇

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:18:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,  也许有人以为struts不简单学,仿佛内里的一些观点让未打仗过的人利诱,MVC1、MVC2、形式……我写这篇文章是想让历来没有打仗过struts的人,能有个复杂的进门指引,固然,体系地进修struts是需要的,内里有良多让民气醉的东东,那是后话了。
  该案例包含首页,用户上岸、网站导游页面。就这么复杂,没有深邃的struts观点,次要靠下手,然后专心体味。
  WEBServer用tomcat4。到http://jakarta.apache.org下载struts1.1,把zip文件开释到c:struts,拷贝C:strutswebappsstruts-example.war到c:        omcat4webapps中,启动tomcat,war包被开释为struts-example文件夹,删除war包,把struts-example文件夹改名为test。
  1、把WEB-INFweb.xml改成:
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEweb-appPUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.2//EN""http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<!―这是struts中的Controller(把持器),体系的指令直达由其,既ActionServlet类卖力,它从struts-config.xml中读取设置信息,并在服务器背景主动启动一个线程。假如没有出格的请求(如增加言语编转功效),程序员能够不论这部分,照用就能够了。-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--该体系的servlet能够映照成cool为后缀的文件,而不是罕见的.jspdo等,后缀名能够改成任何称号,固然名字要安康#◎¥%!-->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.cool</url-pattern>
</servlet-mapping>
<!--该体系的默许首页是index.jsp,能够有多个,体系顺次序找,相似IIS-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
  2、把testWEB-INFstruts-config.xml改成:
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<!--FormBean是struts的一个观点,实质是JavaBean,用来主动存储页面表单中各个域的值,并在得当的时分回填表单域,不必要象传统那样request.getParameter(“fieldName”);,常被action-mappings中的action利用-->
<form-beans>
<!―稍后我们会新增一个UserForm类,用来存储用户信息。-->
<form-beanname="userForm"type="test.UserForm"/>
</form-beans>
<!--这里寄存全部体系都可使用的全局转向直达(Forward)地点,相似于javascript中的window.location(‘index.jsp);,也相似于电视把持器上的各类按钮,能够转频道、调色等等是基于Struts的Web使用的把持流程流转。一样平常情形下,一个Action处置终了后,会转发到一个JSP页面举行显现。这也是JSP中的MVC的完成的要点。-->
<global-forwards>
<!--failed.cool将被当做servlet哀求,到action-mappings中寻觅对应的action处置。-->
<forwardname="failed"path="/failed.cool"/>
<forwardname="regist"path="/regist.jsp"/>
</global-forwards>
<!--还记得web.xml中后缀为cool的哀求吗?它们是转到这里处置的。这里相称于struts的Model部分,Model部分是struts中对照天真的中央。-->
<action-mappings>
<!--处置regist.cools的哀求,利用的FormBean是userForm,既test.UserForm类,当处置历程产生毛病时将前往index.jsp-->
<actionpath="/regist"type="test.RegistAction"name="userForm"scope="request"input="/index.jsp"/>
<actionpath="/overview"forward="/hello.jsp"/>
<actionpath="/failed"forward="/wuwu.jsp"/>
</action-mappings>
</struts-config>
  3、增添一个FormBean,类路径为test.UserForm,以下是这个类的内容:
packagetest;
importorg.apache.struts.action.ActionForm;
publicclassUserFormextendsActionForm
{
 privateStringname="lpw";//用户名
 privateStringps="1111";//暗码
 publicUserForm(){}
 publicvoidsetName(Strings){name=s;}
 publicStringgetName(){returnname;}
 publicvoidsetPs(Strings){ps=s;}
 publicStringgetPs(){returnps;}
}

  4、增添一个Action的子类,类路径为test.RegistAction,以下是这个类的内容:
packagetest;
importjava.lang.reflect.InvocationTargetException;
importjava.util.Locale;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpSession;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionError;
importorg.apache.struts.action.ActionErrors;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
importorg.apache.struts.util.MessageResources;
importtest.UserForm;
publicfinalclassRegistActionextendsAction
{
 publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)
 throwsException
 {
  Localelocale=getLocale(request);
  MessageResourcesmessages=getResources(request);
  HttpSessionsession=request.getSession();
  UserFormuserform=(UserForm)form;
  //此处能够挪用其他类来实行数据库写进或其他逻辑判别
  //假如UserForm传来的参数name的值为默许的lpw,将forward到failed,
  //该称号将到struts-config.xml的<global-forwards>中寻觅映照的url地点
  //(能够是相对路径,也能够是绝对路径),关于本例,是转到failed.cool,
  //还记得吗?后缀为cool的哀求全体到action-mappings中寻觅
  //对应的action处置,终极目次是wuwu.jsp*/
  if("lpw".equals(userform.getName()))
   return(mapping.findForward("failed"));
  else
   return(mapping.findForward("regist"));
 }
}
  5、以下一切新增或修正的页面相称于struts的View部分,把首页index.jsp改成:
<%@pagecontentType="text/html;charset=GBK"language="java"%>
<%@pageimport="test.*"%>
<ahref="overview.cool">站点导航</a><br>
<formaction="regist.cool"method="post">
<!―表单中的域的称号要和UserForm中的参数一样,就能够完成数据主动猎取功效,不必要用request.getParameter(“param”);-->
用户:<inputtype="text"name="name"><br>
暗码:<inputtype="password"name="ps"><br>
<inputtype=submitvalue="新增用户">
</form>
  6、增添hello.jsp,用于站点导航:
<h1>sitemap</h1>Thefollowingiscontentfillingbyreader
  7、增添wuwu.jsp,当没有新用户上岸时,将转到这个页面:
<%@pagecontentType="text/html;charset=GBK"language="java"%>
<jsp:useBeanid="beanlpw"class="test.UserForm"scope="session"/>
现有效户:<%=beanlpw.getName()%><br>
暗码:<%=beanlpw.getPs()%><br>
  没有失掉新的用户!
  8、增添regist.jsp,当有新用户上岸时,将转到这个页面:
<%@pagecontentType="text/html;charset=GBK"language="java"%>
<jsp:useBeanid="beanlpw"class="test.UserForm"scope="session"/>
新用户帐号:<%=beanlpw.getName()%><br>
暗码:<%=beanlpw.getPs()%>
  9、启动tomcat4,扫瞄器中键进http://localhost:8080/test/index.jsp,操纵一下,就能够看到了局,并开端了解struts的M、V、C各部分的协同事情道理,固然这是作者的优秀志愿,假如读者看得一头雾水,接待指堕落误在那里:

一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
莫相离 该用户已被删除
沙发
发表于 2015-1-20 19:51:58 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
简单生活 该用户已被删除
板凳
发表于 2015-1-29 14:48:42 | 只看该作者
是一种为 Internet发展的计算机语言
老尸 该用户已被删除
地板
发表于 2015-2-5 04:29:58 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
5#
发表于 2015-2-6 08:21:07 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
柔情似水 该用户已被删除
6#
发表于 2015-2-8 12:24:18 | 只看该作者
是一种为 Internet发展的计算机语言
飘飘悠悠 该用户已被删除
7#
发表于 2015-2-11 01:03:04 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
冷月葬花魂 该用户已被删除
8#
发表于 2015-2-11 06:00:29 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
小女巫 该用户已被删除
9#
发表于 2015-2-26 06:12:57 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
小妖女 该用户已被删除
10#
发表于 2015-3-7 13:20:18 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
小魔女 该用户已被删除
11#
发表于 2015-3-15 06:48:32 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
蒙在股里 该用户已被删除
12#
发表于 2015-3-21 19:41:00 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 13:13

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表