﻿<?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>BlogJava-qqjianyue代码工-随笔分类-Web一般性问题</title><link>http://www.blogjava.net/jianyue/category/34175.html</link><description>砌java代码</description><language>zh-cn</language><lastBuildDate>Tue, 26 Jan 2010 16:23:56 GMT</lastBuildDate><pubDate>Tue, 26 Jan 2010 16:23:56 GMT</pubDate><ttl>60</ttl><item><title>调用axis2 WebService三种方法</title><link>http://www.blogjava.net/jianyue/archive/2010/01/20/310270.html</link><dc:creator>Qzi</dc:creator><author>Qzi</author><pubDate>Wed, 20 Jan 2010 15:16:00 GMT</pubDate><guid>http://www.blogjava.net/jianyue/archive/2010/01/20/310270.html</guid><wfw:comment>http://www.blogjava.net/jianyue/comments/310270.html</wfw:comment><comments>http://www.blogjava.net/jianyue/archive/2010/01/20/310270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jianyue/comments/commentRss/310270.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jianyue/services/trackbacks/310270.html</trackback:ping><description><![CDATA[第一：简单的使用axis2包自己实现调用<br />

<p>package common;</p>
<p>import javax.xml.namespace.QName;<br />
import org.apache.axis2.AxisFault;<br />
import org.apache.axis2.addressing.EndpointReference;<br />
import org.apache.axis2.client.Options;<br />
import org.apache.axis2.rpc.client.RPCServiceClient;</p>
<p>public class WebServiceUtils<br />
{<br />
&nbsp;// ----------------------------------------------------- Properties<br />
&nbsp;public static int TIMEOUT = 100000;</p>
<p>&nbsp;// ----------------------------------------------------- Constructors</p>
<p>&nbsp;// ----------------------------------------------------- Methods<br />
&nbsp;/**<br />
&nbsp; * <br />
&nbsp; * 调用axis2的webservice的方法<br />
&nbsp; * <br />
&nbsp; * @return<br />
&nbsp; */<br />
&nbsp;@SuppressWarnings("unchecked")<br />
&nbsp;static public Object[] invokeWebService( String url, String nameSpace, String method, Object[] args, Class[] returnTypes )<br />
&nbsp;&nbsp;&nbsp;throws AxisFault<br />
&nbsp;{<br />
&nbsp;&nbsp;RPCServiceClient serviceClient = new RPCServiceClient();<br />
&nbsp;&nbsp;Options options = serviceClient.getOptions();<br />
&nbsp;&nbsp;EndpointReference targetEPR = new EndpointReference( url );<br />
&nbsp;&nbsp;options.setTo( targetEPR );<br />
&nbsp;&nbsp;options.setTimeOutInMilliSeconds( TIMEOUT );<br />
&nbsp;&nbsp;QName opName = new QName( nameSpace, method );<br />
&nbsp;&nbsp;Object[] results = serviceClient.invokeBlocking( opName, args, returnTypes );<br />
&nbsp;&nbsp;return results;<br />
&nbsp;}<br />
}<br />
</p>
<br />
第二： <br />
<p>public static OMElement getEchoOMElement() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OMFactory fac = OMAbstractFactory.getOMFactory();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OMNamespace omNs = fac.createOMNamespace(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://example1.org/example1", "example1");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OMElement method = fac.createOMElement("echo", omNs);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OMElement value = fac.createOMElement("Text", omNs);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.addChild(fac.createOMText(value, "Axis2 Echo String "));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method.addChild(value);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return method;<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OMElement payload = ClientUtil.getEchoOMElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options options = new Options();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; options.setTo(targetEPR);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; options.setAction("urn:echo");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Blocking invocation<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServiceClient sender = new ServiceClient();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sender.setOptions(options);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OMElement result = sender.sendReceive(payload);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(result);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(options.getTo());</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (AxisFault axisFault) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; axisFault.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;<br />
第三：<br />
</p>
<p>利用插件生成客户端<br />
private static String URL="http://localhost:8080/axis2/services/WeatherService";&nbsp; <br />
&nbsp;&nbsp;&nbsp; public static void main(String[] args) throws RemoteException {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WeatherServiceStub stub;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (args != null &amp;&amp; args.length != 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stub = new WeatherServiceStub(args[0]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stub = new WeatherServiceStub(URL);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WeatherServiceStub.SetWeather setWether = new WeatherServiceStub.SetWeather();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WeatherServiceStub.Weather wether = new WeatherServiceStub.Weather();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wether.setForecast("east");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wether.setRain(true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wether.setTemperature(12.3f);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wether.setForecast("big");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setWether.setWeather(wether);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stub.setWeather(setWether);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WeatherServiceStub.GetWeatherResponse gw = new WeatherServiceStub.GetWeatherResponse();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(gw.get_return());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (AxisFault e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</p>
<p><br />
本文部分来自CSDN博客，转载请标明出处：<a href="http://blog.csdn.net/yhhah/archive/2009/05/07/4158487.aspx">http://blog.csdn.net/yhhah/archive/2009/05/07/4158487.aspx</a></p>
<img src ="http://www.blogjava.net/jianyue/aggbug/310270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jianyue/" target="_blank">Qzi</a> 2010-01-20 23:16 <a href="http://www.blogjava.net/jianyue/archive/2010/01/20/310270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat form提交，中文乱码解决，使用过滤器</title><link>http://www.blogjava.net/jianyue/archive/2008/10/01/231954.html</link><dc:creator>Qzi</dc:creator><author>Qzi</author><pubDate>Wed, 01 Oct 2008 01:52:00 GMT</pubDate><guid>http://www.blogjava.net/jianyue/archive/2008/10/01/231954.html</guid><wfw:comment>http://www.blogjava.net/jianyue/comments/231954.html</wfw:comment><comments>http://www.blogjava.net/jianyue/archive/2008/10/01/231954.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/jianyue/comments/commentRss/231954.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jianyue/services/trackbacks/231954.html</trackback:ping><description><![CDATA[&nbsp;
<p><span style="font-family: 宋体">创建</span> Filter(<span style="font-family: 宋体">过滤器</span>) </p>
<p>&nbsp;<span style="font-family: 宋体">实际开发中都需要开发一些很有用的过滤器，来解决中文表单提交问题啊，给请求和响</span></p>
<p><span style="font-family: 宋体">应加入</span> GZIP<span style="font-family: 宋体">压缩功能啊，用户权限控制啊，等等，然而遗憾的</span> MyEclipse<span style="font-family: 宋体">不支持直接创建</span></p>
<p><span style="font-family: 宋体">过滤器。在这里只好手工创建一个解决</span> Tomcat<span style="font-family: 宋体">表单提交中文问题的过滤器。</span></p>
<p>&nbsp;<span style="font-family: 宋体">选择菜单</span> File &gt; New &gt; Class<span style="font-family: 宋体">，来创建一个名为</span> TomcatFormFilter <span style="font-family: 宋体">的类，包名为</span></p>
<p>filters<span style="font-family: 宋体">。然后把类的代码修改为如下所示：</span></p>
<p>package filters; </p>
<p>import java.io.IOException; </p>
<p>import javax.servlet.Filter; </p>
<p>import javax.servlet.FilterChain; </p>
<p>import javax.servlet.FilterConfig; </p>
<p>import javax.servlet.ServletException; </p>
<p>import javax.servlet.ServletRequest; </p>
<p>import javax.servlet.ServletResponse; </p>
<p>import javax.servlet.http.HttpServletRequest; </p>
<p>import javax.servlet.http.HttpServletRequestWrapper; </p>
<p>public class TomcatFormFilter implements Filter { </p>
<p>&nbsp;/** </p>
<p>&nbsp;&nbsp; * Request.java </p>
<p>&nbsp;&nbsp; * <span style="font-family: 宋体">对</span> HttpServletRequestWrapper <span style="font-family: 宋体">进行扩充</span>, <span style="font-family: 宋体">不影响原来的功能并能提供所</span></p>
<p><span style="font-family: 宋体">有的</span> HttpServletRequest </p>
<p>&nbsp;&nbsp; * <span style="font-family: 宋体">接口中的功能</span>. <span style="font-family: 宋体">它可以统一的对</span> Tomcat <span style="font-family: 宋体">默认设置下的中文问题进行解决而只</span></p>
<p><span style="font-family: 宋体">需要用新的</span> Request <span style="font-family: 宋体">对象替换页面中的</span></p>
<p>&nbsp;&nbsp; * request <span style="font-family: 宋体">对象即可</span>. </p>
<p>&nbsp;&nbsp; */ </p>
<p>&nbsp;class Request extends HttpServletRequestWrapper </p>
<p>&nbsp;{ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Request(HttpServletRequest request) { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super(request); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp; /** </p>
<p>&nbsp;&nbsp; * <span style="font-family: 宋体">转换由表单读取的数据的内码</span>. </p>
<p>&nbsp;&nbsp; * <span style="font-family: 宋体">从</span> ISO <span style="font-family: 宋体">字符转到</span> GBK. </p>
<p>&nbsp;&nbsp; */ </p>
<p>&nbsp;&nbsp; public String toChi(String input) { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] bytes = input.getBytes("ISO8859-1"); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new String(bytes, "GBK"); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception ex) { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null; </p>
<p>&nbsp;} </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Return the HttpServletRequest holded by this object. </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private HttpServletRequest getHttpServletRequest() </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;return (HttpServletRequest)super.getRequest(); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp; /** </p>
<p>&nbsp;&nbsp; * <span style="font-family: 宋体">读取参数</span> -- <span style="font-family: 宋体">修正了中文问题</span>. </p>
<p>&nbsp;&nbsp; */ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String getParameter(String name) </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return </p>
<p>toChi(getHttpServletRequest().getParameter(name)); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp; /** </p>
<p>&nbsp;&nbsp; * <span style="font-family: 宋体">读取参数列表</span> - <span style="font-family: 宋体">修正了中文问题</span>. </p>
<p>&nbsp;&nbsp; */ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String[] getParameterValues(String name) </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String values[] = </p>
<p>getHttpServletRequest().getParameterValues(name); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (values != null) { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; values.length; i++) { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; values[i] = toChi(values[i]); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return values; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;} </p>
<p>&nbsp;public void destroy() { </p>
<p>&nbsp;} </p>
<p>&nbsp;public void doFilter(ServletRequest request, ServletResponse </p>
<p>response, </p>
<p>&nbsp;&nbsp; FilterChain chain) throws IOException, ServletException {</p>
<p>&nbsp;&nbsp;&nbsp; HttpServletRequest httpreq = (HttpServletRequest)request; </p>
<p>&nbsp;&nbsp; if(httpreq.getMethod().equals("POST")) { </p>
<p>&nbsp;&nbsp; request.setCharacterEncoding("GBK"); </p>
<p>&nbsp;} else { </p>
<p>&nbsp;&nbsp; request = new Request(httpreq); </p>
<p>&nbsp;} </p>
<p>&nbsp;chain.doFilter(request, response); </p>
<p>&nbsp;} </p>
<p>&nbsp;public void init(FilterConfig filterConfig) throws </p>
<p>ServletException { </p>
<p>&nbsp;} </p>
<p>} </p>
<p><span style="font-family: 宋体">清单</span> 8.5 <span style="font-family: 宋体">过滤器代码</span></p>
<p><span style="font-family: 宋体">然后修改</span> web.xml <span style="font-family: 宋体">加入</span> Servlet <span style="font-family: 宋体">定义，修改后的代码清单如下所示：</span></p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt; </p>
<p>&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" </p>
<p>&nbsp;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" </p>
<p>&nbsp;xsi:schemaLocation="http://java.sun.com/xml/ns/javaee&nbsp;</p>
<p>&nbsp;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt; </p>
<p>&nbsp;&lt;servlet&gt; </p>
<p>&nbsp;&nbsp; &lt;description&gt; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is the description of my J2EE component </p>
<p>&nbsp;&nbsp; &lt;/description&gt; </p>
<p>&nbsp;&nbsp; &lt;display-name&gt; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is the display name of my J2EE component </p>
<p>&nbsp;&nbsp; &lt;/display-name&gt; </p>
<p>&nbsp;&nbsp; &lt;servlet-name&gt;LoginServlet&lt;/servlet-name&gt; </p>
<p>&nbsp;&nbsp; &lt;servlet-class&gt;servlets.LoginServlet&lt;/servlet-class&gt; </p>
<p>&nbsp;&lt;/servlet&gt; </p>
<p>&nbsp;&lt;filter&gt; </p>
<p>&nbsp;&nbsp; &lt;filter-name&gt;TomcatFormFilter&lt;/filter-name&gt; </p>
<p>&nbsp;&nbsp; &lt;filter-class&gt;filters.TomcatFormFilter&lt;/filter-class&gt; </p>
<p>&nbsp;&lt;/filter&gt; </p>
<p>&nbsp;&lt;filter-mapping&gt; </p>
<p>&nbsp;&nbsp; &lt;filter-name&gt;TomcatFormFilter&lt;/filter-name&gt; </p>
<p>&nbsp;&nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; </p>
<p>&nbsp;&lt;/filter-mapping&gt; </p>
<p>&nbsp;&lt;servlet-mapping&gt; </p>
<p>&nbsp;&nbsp; &lt;servlet-name&gt;LoginServlet&lt;/servlet-name&gt; </p>
<p>&nbsp;&nbsp; &lt;url-pattern&gt;/login.aspx&lt;/url-pattern&gt; </p>
<p>&nbsp;&lt;/servlet-mapping&gt; </p>
<p>&nbsp;&lt;welcome-file-list&gt; </p>
<p>&nbsp;&nbsp; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; </p>
<p>&nbsp;&lt;/welcome-file-list&gt; </p>
<p>&lt;/web-app&gt; </p>
<p><span style="font-family: 宋体">清单</span> 8.6<span style="font-family: 宋体">加入了过滤器的</span> web.xml <span style="font-family: 宋体">内容</span></p>
<p><span style="font-family: 宋体">清单中的粗斜体部分就是新加入的过滤器的映射信息。</span></p>
<img src ="http://www.blogjava.net/jianyue/aggbug/231954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jianyue/" target="_blank">Qzi</a> 2008-10-01 09:52 <a href="http://www.blogjava.net/jianyue/archive/2008/10/01/231954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>reqeust getHead</title><link>http://www.blogjava.net/jianyue/archive/2008/09/02/226425.html</link><dc:creator>Qzi</dc:creator><author>Qzi</author><pubDate>Tue, 02 Sep 2008 08:41:00 GMT</pubDate><guid>http://www.blogjava.net/jianyue/archive/2008/09/02/226425.html</guid><wfw:comment>http://www.blogjava.net/jianyue/comments/226425.html</wfw:comment><comments>http://www.blogjava.net/jianyue/archive/2008/09/02/226425.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jianyue/comments/commentRss/226425.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jianyue/services/trackbacks/226425.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<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;">String&nbsp;lastUrl&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;request.getHeader(</span><span style="color: #000000;">"</span><span style="color: #000000;">Referer</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span><span style="color: #000000;"><br />
</span></div>
不好意思，下面的说错了（所以都标红了），不过的确这个方法在有框架的时候性能还不清楚，<br />
貌似是：<br />
在多个框架中，IE的情况是：如果将在frame触发的链接显示在frame2中，frame2的Referer就不会改变。firefox的情况是，会变，所以firefox处理的更好。<br />
请有识之士教导。<br />
<br />
<span style="color: #ffccff;">
使用到方法来获得上一次路径的请注意了，如果页面涉及到框架frame的话，请留意firefox与IE的不同。<br />
<br />
假如页面具有整个页面，上，左，右三个frame四个所谓的windows，假设每一个frame都有自己地址栏，当然真实的地址栏只有整个页面的一个。<br />
我出现的情况是：
<br />
1）firefox中：一个右frame的jsp页面进入的struts的action，在这个action使用这个函数，能够获得右frame地址栏原来的字符串。在右frame页面里使用这个函数，也能够获得右frame原来的地址栏的字符串。
算是比较正常吧，获得所谓的referer的字符串嘛。<br />
2）IE中：一个右frame的jsp页面进入的一个action，使用这个函数，获得的是整个页面的地址栏原来的字符串。在右frame页面里使用这个函数，却获得的是右frame地址栏原来的字符串。
这样就不正常啦，我在action里使用获得的竟然是整个页面的地址栏原来的字符串，那样我new ActionForward(这个url)的时候，就会出现框架嵌套框架啦。
</span>
<br />
<br />
这些问题应该是跟浏览器的实现有关。<br />
<br />
我用这个函数主要是想实现返回上一步的功能。但是上一步的路径获得那么可预测，这种方法获得之前页面看来是不能信赖地用的。<br />
<img src ="http://www.blogjava.net/jianyue/aggbug/226425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jianyue/" target="_blank">Qzi</a> 2008-09-02 16:41 <a href="http://www.blogjava.net/jianyue/archive/2008/09/02/226425.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>