|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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各部分的协同事情道理,固然这是作者的优秀志愿,假如读者看得一头雾水,接待指堕落误在那里:
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。 |
|