﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-魔のkyo的工作室-随笔分类-JSP</title><link>http://www.cnitblog.com/luckydmz/category/7569.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 03 Apr 2019 10:27:14 GMT</lastBuildDate><pubDate>Wed, 03 Apr 2019 10:27:14 GMT</pubDate><ttl>60</ttl><item><title>从request(HttpServletRequest)中获取url的各个成分，拼接成url</title><link>http://www.cnitblog.com/luckydmz/archive/2016/03/08/90386.html</link><dc:creator>魔のkyo</dc:creator><author>魔のkyo</author><pubDate>Tue, 08 Mar 2016 03:00:00 GMT</pubDate><guid>http://www.cnitblog.com/luckydmz/archive/2016/03/08/90386.html</guid><wfw:comment>http://www.cnitblog.com/luckydmz/comments/90386.html</wfw:comment><comments>http://www.cnitblog.com/luckydmz/archive/2016/03/08/90386.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/luckydmz/comments/commentRss/90386.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/luckydmz/services/trackbacks/90386.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;request.getScheme()</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">://</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">request.getServerName();<br />
</span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(request.getServerPort()&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">80</span><span style="color: #000000; ">)&nbsp;{<br />
</span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">request.getServerPort();&nbsp;<br />
</span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080; ">5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;request.getContextPath();<br />
</span><span style="color: #008080; ">6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;request.getServletPath();<br />
</span><span style="color: #008080; ">7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(request.getQueryString()&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">)&nbsp;{<br />
</span><span style="color: #008080; ">8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">?</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">request.getQueryString();<br />
</span><span style="color: #008080; ">9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
url:http://127.0.0.1/qipei/orders.do?p=listOrdersByPage<br />request.getScheme():http<br />request.getServerName():127.0.0.1<br />request.getServerPort():80<br />request.getContextPath():/qipei<br />request.getServletPath():/orders.do<br />request.getQueryString():p=listOrdersByPage<br /><br />注意<br />1. contextPath和servletPath都是以'/'开头的，所以拼接时不需要再加'/'。特别地，当网站部署在ROOT目录时，contextPath是空字符串<br />2. 当没有queryString时，getQueryString返回null而不是空字符串，没有以'?'开头，需要自己加。<img src ="http://www.cnitblog.com/luckydmz/aggbug/90386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/luckydmz/" target="_blank">魔のkyo</a> 2016-03-08 11:00 <a href="http://www.cnitblog.com/luckydmz/archive/2016/03/08/90386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Spring框架中配置Quartz</title><link>http://www.cnitblog.com/luckydmz/archive/2016/02/01/90364.html</link><dc:creator>魔のkyo</dc:creator><author>魔のkyo</author><pubDate>Mon, 01 Feb 2016 04:39:00 GMT</pubDate><guid>http://www.cnitblog.com/luckydmz/archive/2016/02/01/90364.html</guid><wfw:comment>http://www.cnitblog.com/luckydmz/comments/90364.html</wfw:comment><comments>http://www.cnitblog.com/luckydmz/archive/2016/02/01/90364.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/luckydmz/comments/commentRss/90364.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/luckydmz/services/trackbacks/90364.html</trackback:ping><description><![CDATA[applicationContext.xml
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;Job&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="couponExpiringNoticeJob"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="com.ff.job.CouponExpiringNoticeJob"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;定义目标bean和bean中的方法&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="springQtzJobMethod"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="targetObject"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">ref&nbsp;</span><span style="color: #FF0000; ">bean</span><span style="color: #0000FF; ">="couponExpiringNoticeJob"</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="targetMethod"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;要执行的方法名称&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">execute</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;调度触发器&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="cronTriggerBean"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="org.springframework.scheduling.quartz.CronTriggerBean"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="jobDetail"</span><span style="color: #FF0000; ">&nbsp;ref</span><span style="color: #0000FF; ">="springQtzJobMethod"</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="cronExpression"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="0&nbsp;46&nbsp;10&nbsp;*&nbsp;*&nbsp;?"</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;调度工厂&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="springJobSchedulerFactoryBean"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="org.springframework.scheduling.quartz.SchedulerFactoryBean"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="triggers"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">list</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">ref&nbsp;</span><span style="color: #FF0000; ">bean</span><span style="color: #0000FF; ">="cronTriggerBean"</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">list</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span></div>
<br />
java<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;com.ff.job;<br /><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.util.Date;<br /><br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;CouponExpiringNoticeJob&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;execute()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;ms&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;System.currentTimeMillis();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\t\t</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Date(ms));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span></div><img src ="http://www.cnitblog.com/luckydmz/aggbug/90364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/luckydmz/" target="_blank">魔のkyo</a> 2016-02-01 12:39 <a href="http://www.cnitblog.com/luckydmz/archive/2016/02/01/90364.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决JSP中文乱码</title><link>http://www.cnitblog.com/luckydmz/archive/2016/01/16/90347.html</link><dc:creator>魔のkyo</dc:creator><author>魔のkyo</author><pubDate>Sat, 16 Jan 2016 09:42:00 GMT</pubDate><guid>http://www.cnitblog.com/luckydmz/archive/2016/01/16/90347.html</guid><wfw:comment>http://www.cnitblog.com/luckydmz/comments/90347.html</wfw:comment><comments>http://www.cnitblog.com/luckydmz/archive/2016/01/16/90347.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/luckydmz/comments/commentRss/90347.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/luckydmz/services/trackbacks/90347.html</trackback:ping><description><![CDATA[<div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="background-color: inherit;">要解决中文乱码首先要清楚有哪些地方可以指定编码，最简单粗暴的方式就是把所有可以指定编码的地方都指定成统一的编码比如utf-8，如果不指定成统一的也要清楚知道在每个步骤中编码是什么格式，以便从一个步骤到另一个步骤时正确转换编码。</div><div style="background-color: inherit;"></div><div style="background-color: inherit;">有以下这些地可以分别决定编码格式</div><div style="background-color: inherit;">&#183;JSP文件实际保存的编码</div><div style="background-color: inherit;">&#183;告知web容器JSP文件保存的编码</div><div style="background-color: inherit;">&#183;告知web容器通过POST方式提交的内容编码</div><div style="background-color: inherit;">&#183;告知web容器通过GET方式提交的内容编码</div><div style="background-color: inherit;">&#183;告知浏览器服务器返回的页面内容编码</div><div style="background-color: inherit;"></div><div style="background-color: inherit;"><strong><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">&#183;JSP文件实际保存的编码</span></strong></div><div style="background-color: inherit;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">一般编辑器保存时都可以指定，这个没什么好说的，中文系统默认的ANSI是GB2312格式，很多编辑器默认使用这个，也有一些编辑器默认UTF-8，UTF-8是扩展性比较强的编码，包含中文日文韩文，它的设计上的扩展性使得它没有最大编码容量，是比较好的编码格式。</span></div><div style="background-color: inherit;"><br /></div><div style="background-color: inherit;"><strong><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">&#183;告知web容器JSP文件保存的编码</span></strong></div><div style="background-color: inherit;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">通过在JSP的头部写上</span></div><div style="background-color: inherit;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">&lt;%</span><span style="color: #000000; ">@&nbsp;page&nbsp;language</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">java</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">java.util.*</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;pageEncoding</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">UTF-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%&gt;</span></div><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;"></span></span></div><div style="background-color: inherit;">在MyEclipse中可以修改JSP创建模板中pageEncoding的编码，Window-Preferences-MyEclipse-Files and Editors-JSP</div><div style="background-color: inherit;">修改Encoding为ISO 10646/Unicode(UTF-8)</div></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br /></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><strong><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">&#183;告知web容器通过POST方式提交的内容编码</span></strong></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">和</span></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;"><strong><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">&#183;告知浏览器服务器返回的页面内容编码</span></strong><br style="background-color: inherit;" /></span></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">分别是通过JSP中request和response对象的<span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">setCharacterEncoding方法完成</span></span></span></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">可以通过在<span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">WEB-INF/</span><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">web.xml文件中添加</span><span style="background-color: inherit; line-height: 1.5;">Filter来完成</span></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">在web-app下级添加</div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;配置过滤器&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">filter</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-class</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">com.ff.filter.MyFilter</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-class</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-mapping</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">filter</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">url-pattern</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/*</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">url-pattern</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-mapping</span><span style="color: #0000FF; ">&gt;</span></div></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">com/ff.filter/MyFilter.java<br /><br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;com.ff.filter;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.io.IOException;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.Filter;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.FilterChain;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.FilterConfig;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.ServletException;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.ServletRequest;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;javax.servlet.ServletResponse;<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;MyFilter&nbsp;</span><span style="color: #0000FF; ">implements</span><span style="color: #000000; ">&nbsp;Filter&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;destroy()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;doFilter(ServletRequest&nbsp;request,&nbsp;ServletResponse&nbsp;response,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FilterChain&nbsp;chain)&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;IOException,&nbsp;ServletException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setCharacterEncoding(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">text/html;charSet=utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">和上面一句是等效的，但是据说在某些低版本的Servlet中上面一句无效</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chain.doFilter(request,&nbsp;response);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;init(FilterConfig&nbsp;arg0)&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;ServletException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;"><br /></span></div><br /><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">&#183;告知web容器通过GET方式提交的内容编码</span></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">在Tomcat服务器的server.xml配置中指定<span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">URIEncoding="UTF-8"</span></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">Connector&nbsp;</span><span style="color: #FF0000; ">port</span><span style="color: #0000FF; ">="80"</span><span style="color: #FF0000; ">&nbsp;protocol</span><span style="color: #0000FF; ">="HTTP/1.1"</span><span style="color: #FF0000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URIEncoding</span><span style="color: #0000FF; ">="UTF-8"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connectionTimeout</span><span style="color: #0000FF; ">="20000"</span><span style="color: #FF0000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redirectPort</span><span style="color: #0000FF; ">="8443"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br />最后有一点补充，就是在下载文件的文件名中如果包含中文，通过</div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">response.setHeader("Content-Disposition",&nbsp;"attachment;&nbsp;filename=\"&nbsp;+&nbsp;fileNameISO&nbsp;+&nbsp;"\""&nbsp;);</span></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">指定的时候似乎不得不使用ISO8859-1，我还不知道如何将这里的编码设置改掉，所以下载文件名中包含中文时使用以下方法解决</span></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">&#183;指定下载文件名包含中文</div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">在指定下载文件名时如果要通过<span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">Content-Disposition</span>指定带有中文字符的文件名，必须转换成<span style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-weight: normal;">ISO8859-1编码来指定。</span></div><div style="background-color: #ffffff; color: #000000; font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">String&nbsp;fileNameISO&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;String(fileName.getBytes(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">),&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ISO8859-1</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />response.setHeader(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Content-Disposition</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">attachment;&nbsp;filename=\</span><span style="color: #000000; ">""</span><span style="color: #000000; ">&nbsp;+&nbsp;fileNameISO&nbsp;+&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\</span><span style="color: #000000; ">""</span><span style="color: #000000; ">&nbsp;);</span></div></div></div><img src ="http://www.cnitblog.com/luckydmz/aggbug/90347.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/luckydmz/" target="_blank">魔のkyo</a> 2016-01-16 17:42 <a href="http://www.cnitblog.com/luckydmz/archive/2016/01/16/90347.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate关联映射</title><link>http://www.cnitblog.com/luckydmz/archive/2016/01/13/90344.html</link><dc:creator>魔のkyo</dc:creator><author>魔のkyo</author><pubDate>Wed, 13 Jan 2016 06:34:00 GMT</pubDate><guid>http://www.cnitblog.com/luckydmz/archive/2016/01/13/90344.html</guid><wfw:comment>http://www.cnitblog.com/luckydmz/comments/90344.html</wfw:comment><comments>http://www.cnitblog.com/luckydmz/archive/2016/01/13/90344.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/luckydmz/comments/commentRss/90344.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/luckydmz/services/trackbacks/90344.html</trackback:ping><description><![CDATA[<div><strong>多对一关联映射</strong>（基于<strong>外键</strong>的形式，并不一定要在数据库中真的建立外键约束）<br />&lt;many-to-one name="属性名" column="本表中的列名" class="对应表映射成的类名" /&gt;<br />本表中的列应该是对应表的主键。如果数据库中建立了外键约束似乎可以不配置class<br />例: 一个管理员属于一个角色，一个角色可以有多个管理员<br />&lt;hibernate-mapping&gt;<br />&nbsp; &lt;class name="com.hsg.pojos.Manager" table="Manager" catalog="qipei" schema="dbo"&gt;<br />&nbsp;&nbsp;&nbsp; ...<br />&nbsp;&nbsp;&nbsp; &lt;many-to-one name="role" column="roleId" class="com.hsg.pojos.Role" cascade="none" /&gt;<br />&nbsp; &lt;/class&gt;<br />&lt;/hibernate-mapping&gt;<br /><br /><strong>多对多关联映射</strong>（基于<strong>关系表</strong>）<br />&lt;set name="属性名" table="关系表名" &gt;<br />&nbsp; &lt;key column="关系表中的列名（本表的主键）" &gt;&lt;/key&gt;<br />&nbsp; &lt;many-to-many column="对应表的主键在关系表中的列名" class="对应表映射成的类名"/&gt;<br />&lt;/set&gt;<br />例：一个角色有多个权限，一个权限可以赋予多个角色<br />&lt;hibernate-mapping&gt;<br />&nbsp; &lt;class name="com.hsg.pojos.Role" table="Role" catalog="qipei" schema="dbo"&gt;<br />&nbsp;&nbsp;&nbsp; ...<br />&nbsp;&nbsp;&nbsp; &lt;set name="privileges" inverse="false" cascade="none" table="RolePrivilege" &gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key column="roleId" &gt;&lt;/key&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;many-to-many column="privilegeId" class="com.hsg.pojos.Privilege"/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/set&gt;<br />&nbsp; &lt;/class&gt;<br />&lt;/hibernate-mapping&gt;<br /><br /><strong>一对多关联映射</strong>（基于<strong>外键</strong>的形式，并不一定要在数据库中真的建立外键约束）<br />&lt;set name="属性名"&gt;<br />&nbsp; &lt;key column="对应表中的列名（本表的主键）" &gt;&lt;/key&gt;<br />&nbsp; &lt;one-to-many class="对应表映射成的类名" /&gt;<br />&lt;/set&gt;<br />例：一个产品有多张图片，一张图片只属于一个产品<br />&lt;hibernate-mapping&gt;<br />&nbsp; &lt;class name="com.hsg.pojos.Product" table="Product" catalog="qipei" schema="dbo"&gt;<br />&nbsp;&nbsp;&nbsp; ...<br />&nbsp;&nbsp;&nbsp; &lt;set name="images" lazy="false" inverse="false" cascade="all"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key column="productId" &gt;&lt;/key&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;one-to-many class="com.hsg.pojos.ProductImage" /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/set&gt;<br />&nbsp; &lt;/class&gt;<br />&lt;/hibernate-mapping&gt;<br /><br /><strong>一对一关联映射</strong><br />&lt;one-to-one name="属性名" class="对应表映射成的类名" property-ref="本表的主键在对应表映射成的类中的属性"/&gt;<br />例:经销商是一种特殊的仓库，一个经销商对应一个仓库，一个仓库至多对应一个经销商<br />&lt;hibernate-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;class name="com.hsg.pojos.Distributor" table="Distributor" schema="dbo" catalog="qipei"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;...<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;one-to-one name="repertory" class="com.hsg.pojos.Repertory" property-ref="id" constrained="true" cascade="all" lazy="false" fetch="join"/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/class&gt;<br />&lt;/hibernate-mapping&gt;<br /><br />constrained: 双向关联时一定要把constrained="true"。<br />property-ref: 如果property-ref是表的主键可以省略。<br />inverse: 谁来维护关系，无论是外键还是关系表，谁来维护谁负责更新，false表示自己维护，true表示对方维护。<br />cascade: 对属性内容的修改是不是要更新到对应的表中。<br />例如角色会添加或减少权限，但不会也不应该通过角色修改权限的名字，所以这里在角色的映射关系配置中inverse="false" cascade="none"<br />也正因为cascade="none"只有关系会得到维护，所以可以在添加权限的时候只给Privilege的id赋值即可<br />role.getPrivileges().add(new Privilege(privilegeId)); //这样关系表是可以正常被维护的，而Privielge表的内容不会被修改。<br /><br /></div><img src ="http://www.cnitblog.com/luckydmz/aggbug/90344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/luckydmz/" target="_blank">魔のkyo</a> 2016-01-13 14:34 <a href="http://www.cnitblog.com/luckydmz/archive/2016/01/13/90344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>