??xml version="1.0" encoding="utf-8" standalone="yes"?>
<module id="tapestry4" version="1.1.0">
<contribution configuration-id="tapestry.url.ServiceEncoders">
<page-service-encoder id="page" extension="html" service="page"/>
<direct-service-encoder id="direct" stateless-extension="direct"
stateful-extension="sdirect"/>
<asset-encoder id="asset" path="/assets/"/>
<extension-encoder id="extension" extension="svc" after="*"/>
</contribution>
</module>
同时web.xml中加入映:
<servlet>
<servlet-name>tapestry4</servlet-name>
<servlet-class> org.apache.tapestry.ApplicationServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>tapestry4</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tapestry4</servlet-name>
<url-pattern>*.direct</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tapestry4</servlet-name>
<url-pattern>*.sdirect</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tapestry4</servlet-name>
<url-pattern>/assets/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tapestry4</servlet-name>
<url-pattern>*.svc</url-pattern>
</servlet-mapping>
如果希望首页的调用不是通过/app来映,可以在web.xml中更改redirectQ?br><filter-name>redirect</filter-name>
<filter-class>org.apache.tapestry.RedirectFilter</filter-class>
<init-param>
<param-name>redirect-path</param-name>
<param-value>/Home.html</param-value>
</init-param>
</filter>
q样键入http://localhost:8080/tapestry4Q系l导航到http://localhost:
8080/tapestry4/Home.html,
d一个Page面例如Test.pageQ在Home.html中加?lt;a href="#"
jwcid="@PageLink" page="Test">test</a>Q?br>在生成的Home.html中生成的test的链接地址为:http://localhost:
8080/tapestry4/Test.html
]]>
2.0的瓶?.0的酒。单一的Web2.0Q一个Blog、一个聚合、一?search、一个交友单一功能没希望?真实全面的h靠单一的功能是体现不出来的。我觉得在Web2.0阶段没有垂直的概念Q可以有个中心,有个亮点Q但一定是全面的。我在和讯拼命的把胦l做成大财经Q把大胦l做成中产阶U,完成个阶D|才敢?.0Q现在还没做完。我希望大家要做做全面的?br>垂直或主题社区?br>功能|列却没有深度整合。只要网易、QQ一旦想做Web2.0没有一个h能打得过Q专门做20岁左叛_孩的Qh家有规模了?br>内容庞杂味低?br>q个不用说了。比较共同的是缺服务没有核心技术。我不知道一天发好几百条的ؕ七八p的信息Q什么感情、什么两性,最后想落在什么服务上Q你M能开妓院吧?搞不明白。可以说初阶段的时候h少可以赚点量Q赚点广告,可是xQ象L产品会放在这个上面做q告吗?最多是安全套、伟哥?看不出来。刚刚开始的时候,量,但是够规模自然会产生规模化的盈利。没有核心技术这是中国共同的Q我们最多做的是一些新技术的初应用。我们有可能会在中文化的中国C会环境中的一些综合方面出一些核心技术,像癑ֺ做的差不多。但是现在多数看不出来,想都不想?br>竞争格局Q?br>现在个h信息生活q一头占?0?0Q,CU的物质生活q是我个人最看重的,刚刚开始现在占0.5Q。如果还在个人的信息生zM下工夫,也就是博客一cȝQ现在还想靠q个是没有意义的Q其实机会和格局是ƈ列的。最理想的是自然而然的全方位Q?nbsp; 未来的机会表现在Q?br>C的完整性?br>深度q_Q如果是有游戏背景的技术团队、SEARCH背景的技术团队或者ERPQCRM背景的团队我觉得有机会?br>抓住L人群Q如果你的主h还?0岁以下那没机会了?br>以服务ؓ导向Q不怎么样展C己,得告诉VC一q以后我要推一个什么样的东ѝ?br>我猜大家来这个会主要惛_我说的就是Web2.0焕发W一春或者第二春的。我觉得不容易,真的不容易,虽然VC最q已l像慈善家一h慨了Q但是最Ҏ的是l钱Q最隄是挣钱。我现在困在没钱上,但是我从来不个发愁,因ؓ我知道它无非是成?0Q或?0Q的分量Q大家多x除了׃外的事,你只要想通,有本事了Q钱会来。谢谢大Ӟ
注:既然聚合Q组合关pd于关联关p,那么如何区分一般关联关p,聚合关系和组合关pdQ?/p>
一般关联:只要一个对象联pd另外一个对象就形成了关联关pR如Qh和他的猫Q黑豹乐队和H魏Qpc机和昄器?br> 聚合关系Q一U强兌关系Q它要求有部分和整体的关p,q且没有了整体部分也可以独立存在。在上面三个例子中h和它的猫昄没有部分和整体的关系Q所以只能是一般的兌关系。而黑豹乐队和H魏Q窦等人组成了黑v乐队卻IH魏和黑Ҏ整体和部分的关系。而窦脱M黑vQ早q开了)更或者黑豹不存在了那么窦仍然可以以音乐人的w䆾存在Q即对象仍然可以独立存在Q所以它属于聚合关系。组成关pL可以׃n的。(H魏也可以加入其他乐队)?br> l合关系Q一U更强的整体和部分的关系。它q且要求代表整体的对象负责代表部分的对象的生命周期,l成关系是不能共享的。如Qpc机和昄器的关系?/p>
我觉得:如果两个实体是整体和部分的关p,那么它们到底是聚合还是组合,q取决于你的需求。比如说Qpc机和昄器的关系Q如果你的系l中Q显C器q了pc机就不存在意义了Q也可以_所有显C器的访问都是通过pc行的Q那么你可以把关p设定ؓl合Q如你在Z个只买品牌机的代理商作系l你可能是可以这么作的)。如果你的显C器q的pcZ然可以独立存在,也就是说在系l中可以直接讉K昄器对象,那么你可以将关系设ؓ聚合Q如你在Z个买散g的代理商作系l你可能是可以这么作的)
5Q?br> q个我不惛_讲了Q用q面向对象的语言都应该知道?/p>
Q二Q关pL据库的关p?/strong> O/R MAPPING (HIBERNATE)Ҏ结 Q补充内容)Q?br> 另外我看C一U?键关?的方法,感觉很有道理。我理解了一下ȝ如下Q?br> 1Q一般关联:
一对一
一对多
多对一
多对?br>Q三Qo/r mapping{略
1Q承:
对于l承关系一般有三种{略Q?br> {略1l承树的每个cd应一个表<joined-subclass >
׃n主键
{略2l承树的根类对应一个表<discriminator ><subclass >
需要添加一个识别字D?br> {略3l承树的叶子cd应一个表
不支持多态查?br> 2Q关?br> 2Q? 一对一
一半有两种{略Q?br> {略1Q唯一的外?br> <many-to-one>+unique="true" (唯一的外?
<one-to-one>
{略2Q共享主?br> <one-to-one>
<one-to-one><constrained="true"> (既是主键又是外键)
注意Q生成方式需要用Qforeign
2Q? 一对多Q无需多说Q?br> 2Q? 多对一Q无需多说Q?br> 2Q? 多对?br> {略1QA,B表多对多的关p需要引入C表?br> C表中的所有属性即Z键又为外键分别参照A,B两表?br> C表中不可以有其他属?br> {略2Q将多对多拆分成两个一对多Q?br> A,B对象多对多的关系需要引入C对象。得A,B两对象与C对象的关pMؓ一对多。对应数据库中:A,B表多对多的关p需要引入C表。A,B两表与C表的关系Z对多?br> C表又自己的主?br> C表中又非主键的外键分别参照A,B两表?br> C表中不可以有其他属?br> 如;学生 Q课Eؓ多对多的关系 那么引入学生选课?br> 注意Q策?和策?的不同在于:{略2引入了新的对象而策?没有。这是因P{略1的c表不能又自己的东ѝ而策?有?br> 2Q? 其他
上面说过Q聚合与l成是关联的一U所以他们也W合以上{略?br> 特别的:当用到组合关pȝ是否我们可用用到hibernate?lg"<component>.׃"lg"它完全可以满组成关pȝ强关联?br> 3Q依?br> 一般不在实体域对象中体现?/p>
q种Ҏ对于一般的兌L引入c表(另外的一张表Q仅仅表C关pR?br> C表的主键有分别指向A,B两表Q外键)。当指向一方的外键unique="true"卛_一Q那么这一方ؓ"一"Q反之ؓ"?的一斏V这样就可以形成一般的兌关系。但是注意的是:c表不映射为对象。C表也没有自己的属性?br> 2Q聚合和l成
当实体A的非主键列中有一个引自实体B的时候,q种关系是B聚合A。如果这U引用是强制性的Q则是合成关p,否则合关pR是否ؓ强制性,只需要将引用列设为非I即可;
3Q?br> 当实体A的主键引用自实体B的时候(即ؓ外键Q,那么Al承 B?/p>
<HTML> <BODY> <FORM action="sendmail.jsp" method="post"> <TABLE align="center"> <TR> <TD width="50%"> To:<BR><INPUT name="to" size="25"> </TD> <TD width="50%"> From:<BR><INPUT name="from" size="25"> </TD> </TR> <TR> <TD colspan="2"> Subject:<BR><INPUT name="subject" size="50"> </TD> </TR> <TR> <TD colspan="2"> Message:<BR><TEXTAREA name="text" rows=25 cols=85></TEXTAREA> </TD> </TR> </TABLE> <INPUT type="submit" name="cb_submit" value=" Send "> <INPUT type="reset" name="cb_reset" value=" Clear "> </FORM> </BODY> </HTML> |
Properties props = new Properties (); props.put("mail.smtp.host", "smtp.jspinsider.com"); |
Session sendMailSession; sendMailSession = Session.getInstance(props, null); |
Transport transport; transport = sendMailSession.getTransport("smtp"); |
Message newMessage = new MimeMessage(sendMailSession); |
<%@ page import= " javax.mail.*, javax.mail.internet.*, javax.activation.*, java.util.*" %> |
newMessage.setFrom(new InternetAddress(request.getParameter("from"))); newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("to"))); newMessage.setSubject(request.getParameter("subject")); newMessage.setSentDate(new Date()); newMessage.setText(request.getParameter("text")); |
Sample JSP email Utility Using JavaMail <%@ page import=" javax.mail.*, javax.mail.internet.*, javax.activation.*,java.util.*" %> <html> <head> <TITLE>JSP meets JavaMail, what a sweet combo.</TITLE> </HEAD> <BODY> <% try{ Properties props = new Properties(); Session sendMailSession; Store store; Transport transport; sendMailSession = Session.getInstance(props, null); props.put("mail.smtp.host", "smtp.jspinsider.com"); Message newMessage = new MimeMessage(sendMailSession); newMessage.setFrom(new InternetAddress(request.getParameter("from"))); newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("to"))); newMessage.setSubject(request.getParameter("subject")); newMessage.setSentDate(new Date()); newMessage.setText(request.getParameter("text")); transport = sendMailSession.getTransport("smtp"); transport.send(newMessage); %> <P>Your mail has been sent.</P> <% } catch(MessagingException m) { out.println(m.toString()); } %> </BODY> </HTML> |