📄 utilhttp.java
字号:
UtilHttp.setLocale(request, localeString);
}
return "success";
}
/**
* Get the currency string from the session.
* @param session HttpSession object to use for lookup
* @return String The ISO currency code
*/
public static String getCurrencyUom(HttpSession session) {
String iso = (String) session.getAttribute("currencyUom");
if (iso == null) {
// if none is set we will use the system default
Currency cur = Currency.getInstance(Locale.getDefault());
iso = cur.getCurrencyCode();
}
return iso;
}
/**
* Get the currency string from the session.
* @param request HttpServletRequest object to use for lookup
* @return String The ISO currency code
*/
public static String getCurrencyUom(HttpServletRequest request) {
return getCurrencyUom(request.getSession());
}
/** Simple event to set the users per-session currency uom value */
public static void setCurrencyUom(HttpServletRequest request, String currencyUom) {
request.getSession().setAttribute("currencyUom", currencyUom);
}
/** Simple event to set the users per-session currency uom value */
public static String setSessionCurrencyUom(HttpServletRequest request, HttpServletResponse response) {
String currencyUom = request.getParameter("currencyUom");
if (UtilValidate.isNotEmpty(currencyUom)) {
UtilHttp.setCurrencyUom(request, currencyUom);
}
return "success";
}
/** URL Encodes a Map of arguements */
public static String urlEncodeArgs(Map args) {
StringBuffer buf = new StringBuffer();
if (args != null) {
Iterator i = args.entrySet().iterator();
while (i.hasNext()) {
Map.Entry entry = (Map.Entry) i.next();
String name = (String) entry.getKey();
Object value = entry.getValue();
String valueStr = null;
if (name != null && value != null) {
if (value instanceof String) {
valueStr = (String) value;
} else {
valueStr = value.toString();
}
if (valueStr != null && valueStr.length() > 0) {
if (buf.length() > 0) buf.append('&');
try {
buf.append(URLEncoder.encode(name, "UTF-8"));
} catch (UnsupportedEncodingException e) {
Debug.logError(e, module);
}
buf.append('=');
try {
buf.append(URLEncoder.encode(valueStr, "UTF-8"));
} catch (UnsupportedEncodingException e) {
Debug.logError(e, module);
}
}
}
}
}
return buf.toString();
}
public static String setResponseBrowserProxyNoCache(HttpServletRequest request, HttpServletResponse response) {
setResponseBrowserProxyNoCache(response);
return "success";
}
public static void setResponseBrowserProxyNoCache(HttpServletResponse response) {
long nowMillis = System.currentTimeMillis();
response.setDateHeader("Expires", nowMillis);
response.setDateHeader("Last-Modified", nowMillis); // always modified
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); // HTTP/1.1
response.addHeader("Cache-Control", "post-check=0, pre-check=0, false");
response.setHeader("Pragma", "no-cache"); // HTTP/1.0
}
public static String getContentTypeByFileName(String fileName) {
FileNameMap mime = URLConnection.getFileNameMap();
return mime.getContentTypeFor(fileName);
}
/**
* Stream an array of bytes to the browser
* This method will close the ServletOutputStream when finished
*
* @param response HttpServletResponse object to get OutputStream from
* @param bytes Byte array of content to stream
* @param contentType The content type to pass to the browser
* @throws IOException
*/
public static void streamContentToBrowser(HttpServletResponse response, byte[] bytes, String contentType) throws IOException {
// tell the browser not the cache
setResponseBrowserProxyNoCache(response);
// set the response info
response.setContentLength(bytes.length);
if (contentType != null) {
response.setContentType(contentType);
}
// create the streams
OutputStream out = response.getOutputStream();
InputStream in = new ByteArrayInputStream(bytes);
// stream the content
try {
streamContent(out, in, bytes.length);
} catch (IOException e) {
in.close();
out.close(); // should we close the ServletOutputStream on error??
throw e;
}
// close the input stream
in.close();
// close the servlet output stream
out.flush();
out.close();
}
/**
* Streams content from InputStream to the ServletOutputStream
* This method will close the ServletOutputStream when finished
* This method does not close the InputSteam passed
*
* @param response HttpServletResponse object to get OutputStream from
* @param in InputStream of the actual content
* @param length Size (in bytes) of the content
* @param contentType The content type to pass to the browser
* @throws IOException
*/
public static void streamContentToBrowser(HttpServletResponse response, InputStream in, int length, String contentType) throws IOException {
// tell the browser not the cache
setResponseBrowserProxyNoCache(response);
// set the response info
response.setContentLength(length);
if (contentType != null) {
response.setContentType(contentType);
}
// stream the content
OutputStream out = response.getOutputStream();
try {
streamContent(out, in, length);
} catch (IOException e) {
out.close();
throw e;
}
// close the servlet output stream
out.flush();
out.close();
}
/**
* Stream binary content from InputStream to OutputStream
* This method does not close the streams passed
*
* @param out OutputStream content should go to
* @param in InputStream of the actual content
* @param length Size (in bytes) of the content
* @throws IOException
*/
public static void streamContent(OutputStream out, InputStream in, int length) throws IOException {
int bufferSize = 512; // same as the default buffer size; change as needed
BufferedOutputStream bos = new BufferedOutputStream(out, bufferSize);
BufferedInputStream bis = new BufferedInputStream(in, bufferSize);
byte[] buffer = new byte[length];
int read = 0;
try {
while (-1 != (read = bis.read(buffer, 0, buffer.length))) {
bos.write(buffer, 0, read);
}
} catch (IOException e) {
Debug.logError(e, "Problem reading/writing buffers", module);
bis.close();
bos.close();
throw e;
} finally {
if (bis != null) {
bis.close();
}
if (bos != null) {
bos.flush();
bos.close();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -