本文目录一览:
JSP Base64
import java.io.*;
import java.net.*;
public final class Codes {
public final static byte[] base64Encode(byte[] byteData) {
if (byteData == null)
return null;
int iSrcIdx; // index into source (byteData)
int iDestIdx; // index into destination (byteDest)
byte byteDest[] = new byte[((byteData.length + 2) / 3) * 4];
for (iSrcIdx = 0, iDestIdx = 0; iSrcIdx byteData.length - 2; iSrcIdx += 3) {
byteDest[iDestIdx++] = (byte) ((byteData[iSrcIdx] 2) 077);
byteDest[iDestIdx++] =
(byte) ((byteData[iSrcIdx + 1] 4) 017 | (byteData[iSrcIdx] 4) 077);
byteDest[iDestIdx++] =
(byte) ((byteData[iSrcIdx + 2] 6)
003
| (byteData[iSrcIdx + 1] 2)
077);
byteDest[iDestIdx++] = (byte) (byteData[iSrcIdx + 2] 077);
}
if (iSrcIdx byteData.length) {
byteDest[iDestIdx++] = (byte) ((byteData[iSrcIdx] 2) 077);
if (iSrcIdx byteData.length - 1) {
byteDest[iDestIdx++] =
(byte) ((byteData[iSrcIdx + 1] 4) 017 | (byteData[iSrcIdx] 4) 077);
byteDest[iDestIdx++] = (byte) ((byteData[iSrcIdx + 1] 2) 077);
} else
byteDest[iDestIdx++] = (byte) ((byteData[iSrcIdx] 4) 077);
}
for (iSrcIdx = 0; iSrcIdx iDestIdx; iSrcIdx++) {
if (byteDest[iSrcIdx] 26)
byteDest[iSrcIdx] = (byte) (byteDest[iSrcIdx] + 'A');
else
if (byteDest[iSrcIdx] 52)
byteDest[iSrcIdx] = (byte) (byteDest[iSrcIdx] + 'a' - 26);
else
if (byteDest[iSrcIdx] 62)
byteDest[iSrcIdx] = (byte) (byteDest[iSrcIdx] + '0' - 52);
else
if (byteDest[iSrcIdx] 63)
byteDest[iSrcIdx] = (byte) '+';
else
byteDest[iSrcIdx] = (byte) '/';
}
for (; iSrcIdx byteDest.length; iSrcIdx++)
byteDest[iSrcIdx] = (byte) '=';
return byteDest;
}
public final static String base64Encode(String strInput) {
if (strInput == null)
return null;
return base64Encode(strInput,"GB2312");
}
public final static String base64Encode(String strInput,String charSet) {
if (strInput == null)
return null;
String strOutput=null;
byte byteData[] = new byte[strInput.length()];
try {
//strInput.getBytes(0, strInput.length(), byteData, 0);
byteData = strInput.getBytes(charSet);
strOutput=new String(base64Encode(byteData),charSet);
//strOutput=new String(base64Encode(byteData),0);
} catch (UnsupportedEncodingException e) {
return null;
}
return strOutput;
}
/**
* 此处插入方法说明。
* 创建日期:(2000-11-4 18:27:35)
* @param steam java.io.InputStream
* @param charSet java.lang.String
*/
public final static String base64Encode(InputStream in, String charSet) {
try {
int c;
byte[] buff = new byte[1024];
ByteArrayOutputStream out = new ByteArrayOutputStream(2048);
while ((c = in.read(buff, 0, 1024)) != -1) {
out.write(buff, 0, c);
//index+=1024;
//out.write(c);
//attachContent+=ss;
}
in.close();
out.flush();
byte[] tmp2 = Codes.base64Encode(out.toByteArray());
out.close();
return new String(tmp2,charSet);
}
catch (IOException e) {
return "";
}
}/**
* 此处插入方法说明。
* 创建日期:(2000-11-3 23:31:04)
* @return java.lang.String
* @param strIn java.lang.String
*/
public final static String chunkSplit(String strIn) {
return chunkSplit(strIn,76);
}/**
* 此处插入方法说明。
* 创建日期:(2000-11-3 23:31:04)
* @return java.lang.String
* @param strIn java.lang.String
*/
public final static String chunkSplit(String strIn,int splitLen) {
int index=0;
String strOut="";
while(index+splitLenstrIn.length()){
strOut+=strIn.substring(index,index+splitLen)+"\n";
index+=splitLen;
}
if(indexstrIn.length()){
strOut+=strIn.substring(index);
}
return strOut;
}
}
Tomcat自带JSP实例,请教
哈哈,我做了一年的JSP,现在转PHP了。
表单上的每一个元素,对应JavaBean里面的一个变量,而且这个变量,应该有2个方法get和set,如name,getName()和setName(String name),这个样子的类被称为Bean。Bean类不用实例化(应该说JSP巳经帮我们实例化了)
其实这种接收参数的方式一般和框架配合使用,如Strust(现是2.0版本)。
如果是纯JSP的话用string name=Request.getParameter("name");(我喜欢用这种,省去建Bean了)
jsp中base标签问题,在火狐、google浏览器正常,在IE8下不正常
base标签在ie8显示不正确是因为代码的写法错误,正确的写法:
base href="xxxxxx" /跳转地址
img src="Images/logoSite.gif" /
jsp中base标签在浏览器的兼容性:
浏览器支持如下:
定义和用法
base 标签为页面上的所有链接规定默认地址或默认目标。
通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。
使用 base 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 a、img、link、form 标签中的 URL。
提示和注释:
注释:base 标签必须位于 head 元素内部。
JSP页面文件中base标记用法实例分析
本文实例分析了JSP页面文件中base标记用法。分享给大家供大家参考,具体如下:
我们在用IDE工具生成JSP页面时通常都包含下面的两段代码,
%
String
path
=
request.getContextPath();
String
basePath
=
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%
head
base
href="%=basePath%"
/head
它们绝对不是无用代码,详细如下:
base标记是一个基链接标记,是一个单标记。用以改变文件中所有连结标记的参数内定值。它只能应用于标记head与/head之间。你网页上的所有相对路径在链接时都将在前面加上基链接指向的地址。
重要属性:
href---设定前缀的链接地址
target---设定文件显示的窗口,同a标记中的target
简单例子:
html
head
base
href=
target="_blank"
meta
http-equiv="Content-Type"
content="text/html;
charset=gb2312"
titlebase标记/title
link
rel="Shortcut
Icon"
href="ani.CUR"
/head
body
a
href="x.htm"
target="_self"x.html/a
a
href="y.htm"y.html/a
/body
/html
当点了链接后,跳出的文件是或,它就是在这些相对路径的文件前加上基链接指向的地址。如果目标文件中的链接没有指定target属性,就用base标记中的target属性。
常在框架结构中用,如左右两个框架,把左边的框架中文件里的连接都显示在右边的框架里。只要用base标记,把其target属性值写为右框架名称,这就不用再为左框架里的文件中的每一个连接都指定target属性。
当使用时,BASE
元素必须出现在文档的
HEAD
内,在任何对外部源的引用之前。
另外,如果页面转向某个Servlet,而Servlet里又是forward到的某个jsp页面,如果这时写相对路径就应该先找到Servlet的路径,也就是web.xml中配置的url-pattern中的路径,如:假设有个x.jsp放在webapplication根目录下,而主页index.jsp是提交到servlet上去的,由Serlet来分发forward到x.jsp,Servlet的url配置如下:
复制代码
代码如下:url-pattern/servlet/TestServlet/url-pattern
那么Servlet完成forward转向后,如果没有base
href="%=basePath%"
x.jsp中script
type="text/javascript"
src="script/check.js"/script就会失效,因为Servlet的访问路径为那么web服务器会到下去找check.js此时这里肯定是没有这个文件的,所以,如果遇到这样的情况建议使用绝对路径就不会有错复制代码
代码如下:script
type="text/javascript"
src="%=path%/script/check.js"/script
希望本文所述对大家JSP程序设计有所帮助。