ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/zpgamereconcile");
context.addServlet(LoginController.class, "/login");
context.addServlet(HomeController.class, "/home");
context.addServlet(AdminController.class, "/admin/*");
context.addServlet(ParseLogController.class, "/parselog/*");
context.addServlet(ReconcileController.class, "/reconcile/*");
SessionHandler sessionHandler = context.getSessionHandler();
HashSessionManager sessionManager = (HashSessionManager) sessionHandler.getSessionManager();
sessionManager.setStoreDirectory(new File("/tmp/" + WebServer.class.getName()));
sessionManager.setSavePeriod(1);
// static resource
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setDirectoriesListed(true);
resourceHandler.setResourceBase(".");
ContextHandler ctx = new ContextHandler("/zpgamereconcile"); /* the server uri path */
ctx.setHandler(resourceHandler);
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[]{
ctx, context//handler,
});
//TODO: maxFormContentSize
server.setAttribute("org.eclipse.jetty.server.Request.maxFormContentSize", -1);
server.setHandler(handlers);
Thứ Năm, 5 tháng 11, 2015
Thứ Ba, 21 tháng 4, 2015
http webrequest disgest c# sample
static void request(string uri, string postData)
{
NetworkCredential myNetworkCredential = new NetworkCredential("dtwgsdc", "dtw@sjzx");
Uri myUri = new Uri(uri);
WebRequest myWebRequest = HttpWebRequest.Create(myUri);
HttpWebRequest myHttpWebRequest = (HttpWebRequest)myWebRequest;
CredentialCache myCredentialCache = new CredentialCache();
myCredentialCache.Add(myUri, "Digest", myNetworkCredential);
myHttpWebRequest.PreAuthenticate = true;
myHttpWebRequest.Credentials = myCredentialCache;
myHttpWebRequest.Method = "POST";
byte[] data = Encoding.ASCII.GetBytes(postData);
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
myHttpWebRequest.ContentLength = data.Length;
using (Stream requestStream = myHttpWebRequest.GetRequestStream())
{
requestStream.Write(data, 0, data.Length);
}
using (WebResponse myWebResponse = myWebRequest.GetResponse())
{
using (Stream responseStream = myWebResponse.GetResponseStream())
{
using (StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default))
{
string pageContent = myStreamReader.ReadToEnd();
Console.WriteLine(pageContent);
}
}
}
}
{
NetworkCredential myNetworkCredential = new NetworkCredential("dtwgsdc", "dtw@sjzx");
Uri myUri = new Uri(uri);
WebRequest myWebRequest = HttpWebRequest.Create(myUri);
HttpWebRequest myHttpWebRequest = (HttpWebRequest)myWebRequest;
CredentialCache myCredentialCache = new CredentialCache();
myCredentialCache.Add(myUri, "Digest", myNetworkCredential);
myHttpWebRequest.PreAuthenticate = true;
myHttpWebRequest.Credentials = myCredentialCache;
myHttpWebRequest.Method = "POST";
byte[] data = Encoding.ASCII.GetBytes(postData);
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
myHttpWebRequest.ContentLength = data.Length;
using (Stream requestStream = myHttpWebRequest.GetRequestStream())
{
requestStream.Write(data, 0, data.Length);
}
using (WebResponse myWebResponse = myWebRequest.GetResponse())
{
using (Stream responseStream = myWebResponse.GetResponseStream())
{
using (StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default))
{
string pageContent = myStreamReader.ReadToEnd();
Console.WriteLine(pageContent);
}
}
}
}
Thứ Năm, 18 tháng 12, 2014
share fb in new tab
<?php
$share_href = "https://www.facebook.com/dialog/feed?app_id=".$fbappid."&link={$HOME}{$product['product_url']}&picture={$HOME}{$product['product_image']}&name={$product['name']}&caption={$product['name']}&description=".getplaintextintrofromhtml($product["description"])."&redirect_uri=".$HOME.$product['product_url'];
?>
<a rel="nofollow" href="<?php echo $share_href?>" target="_blank"><img title="Submit Thread to Facebook" src="/static/image/website/facebook.gif" alt="Submit Thread to Facebook"></a>
$share_href = "https://www.facebook.com/dialog/feed?app_id=".$fbappid."&link={$HOME}{$product['product_url']}&picture={$HOME}{$product['product_image']}&name={$product['name']}&caption={$product['name']}&description=".getplaintextintrofromhtml($product["description"])."&redirect_uri=".$HOME.$product['product_url'];
?>
<a rel="nofollow" href="<?php echo $share_href?>" target="_blank"><img title="Submit Thread to Facebook" src="/static/image/website/facebook.gif" alt="Submit Thread to Facebook"></a>
Thứ Ba, 9 tháng 12, 2014
NaturalOrderComparator.java
| /* | |
| NaturalOrderComparator.java -- Perform 'natural order' comparisons of strings in Java. | |
| Copyright (C) 2003 by Pierre-Luc Paour <natorder@paour.com> | |
| Based on the C version by Martin Pool, of which this is more or less a straight conversion. | |
| Copyright (C) 2000 by Martin Pool <mbp@humbug.org.au> | |
| This software is provided 'as-is', without any express or implied | |
| warranty. In no event will the authors be held liable for any damages | |
| arising from the use of this software. | |
| Permission is granted to anyone to use this software for any purpose, | |
| including commercial applications, and to alter it and redistribute it | |
| freely, subject to the following restrictions: | |
| 1. The origin of this software must not be misrepresented; you must not | |
| claim that you wrote the original software. If you use this software | |
| in a product, an acknowledgment in the product documentation would be | |
| appreciated but is not required. | |
| 2. Altered source versions must be plainly marked as such, and must not be | |
| misrepresented as being the original software. | |
| 3. This notice may not be removed or altered from any source distribution. | |
| */ | |
| import java.util.*; | |
| public class NaturalOrderComparator implements Comparator | |
| { | |
| int compareRight(String a, String b) | |
| { | |
| int bias = 0; | |
| int ia = 0; | |
| int ib = 0; | |
| // The longest run of digits wins. That aside, the greatest | |
| // value wins, but we can't know that it will until we've scanned | |
| // both numbers to know that they have the same magnitude, so we | |
| // remember it in BIAS. | |
| for (;; ia++, ib++) | |
| { | |
| char ca = charAt(a, ia); | |
| char cb = charAt(b, ib); | |
| if (!Character.isDigit(ca) && !Character.isDigit(cb)) | |
| { | |
| return bias; | |
| } | |
| else if (!Character.isDigit(ca)) | |
| { | |
| return -1; | |
| } | |
| else if (!Character.isDigit(cb)) | |
| { | |
| return +1; | |
| } | |
| else if (ca < cb) | |
| { | |
| if (bias == 0) | |
| { | |
| bias = -1; | |
| } | |
| } | |
| else if (ca > cb) | |
| { | |
| if (bias == 0) | |
| bias = +1; | |
| } | |
| else if (ca == 0 && cb == 0) | |
| { | |
| return bias; | |
| } | |
| } | |
| } | |
| public int compare(Object o1, Object o2) | |
| { | |
| String a = o1.toString(); | |
| String b = o2.toString(); | |
| int ia = 0, ib = 0; | |
| int nza = 0, nzb = 0; | |
| char ca, cb; | |
| int result; | |
| while (true) | |
| { | |
| // only count the number of zeroes leading the last number compared | |
| nza = nzb = 0; | |
| ca = charAt(a, ia); | |
| cb = charAt(b, ib); | |
| // skip over leading spaces or zeros | |
| while (Character.isSpaceChar(ca) || ca == '0') | |
| { | |
| if (ca == '0') | |
| { | |
| nza++; | |
| } | |
| else | |
| { | |
| // only count consecutive zeroes | |
| nza = 0; | |
| } | |
| ca = charAt(a, ++ia); | |
| } | |
| while (Character.isSpaceChar(cb) || cb == '0') | |
| { | |
| if (cb == '0') | |
| { | |
| nzb++; | |
| } | |
| else | |
| { | |
| // only count consecutive zeroes | |
| nzb = 0; | |
| } | |
| cb = charAt(b, ++ib); | |
| } | |
| // process run of digits | |
| if (Character.isDigit(ca) && Character.isDigit(cb)) | |
| { | |
| if ((result = compareRight(a.substring(ia), b.substring(ib))) != 0) | |
| { | |
| return result; | |
| } | |
| } | |
| if (ca == 0 && cb == 0) | |
| { | |
| // The strings compare the same. Perhaps the caller | |
| // will want to call strcmp to break the tie. | |
| return nza - nzb; | |
| } | |
| if (ca < cb) | |
| { | |
| return -1; | |
| } | |
| else if (ca > cb) | |
| { | |
| return +1; | |
| } | |
| ++ia; | |
| ++ib; | |
| } | |
| } | |
| static char charAt(String s, int i) | |
| { | |
| if (i >= s.length()) | |
| { | |
| return 0; | |
| } | |
| else | |
| { | |
| return s.charAt(i); | |
| } | |
| } | |
| public static void main(String[] args) | |
| { | |
| String[] strings = new String[] { "1-2", "1-02", "1-20", "10-20", "fred", "jane", "pic01", | |
| "pic2", "pic02", "pic02a", "pic3", "pic4", "pic 4 else", "pic 5", "pic05", "pic 5", | |
| "pic 5 something", "pic 6", "pic 7", "pic100", "pic100a", "pic120", "pic121", | |
| "pic02000", "tom", "x2-g8", "x2-y7", "x2-y08", "x8-y8" }; | |
| List orig = Arrays.asList(strings); | |
| System.out.println("Original: " + orig); | |
| List scrambled = Arrays.asList(strings); | |
| Collections.shuffle(scrambled); | |
| System.out.println("Scrambled: " + scrambled); | |
| Collections.sort(scrambled, new NaturalOrderComparator()); | |
| System.out.println("Sorted: " + scrambled); | |
| } | |
| } |
Đăng ký:
Bài đăng (Atom)