本文共 15658 字,大约阅读时间需要 52 分钟。
1. URL 中文传输编码 %D5%F8 (java 类 ) 2. tomcat5.0 带传输中文的参数需要在 tomcat 下的 server.xml 下加上 URIEncoding= ” GBK ” a)
区位码=区码+位码; 一个汉字两个字节,前一个字节是区位
b)
一级字库区位码从1601-5590 分别对应声母a到z 23个
c)
{1601,1637,1833,2078,2274,2302,2433,2594,2787,3106,3212,3472,3635,3722,3730,3858,4027,4086,4390,4558,4684,4925,5249 }
d)
{'A', 'B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z'};
4. tomcat 安装前要安装 jdk ( 并且设置环境变量 ) a)
classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/htmlconverter;
d)
注意有的环境变量的名称就加在已有的环境变量的内容的前面.
5. javascript 实现文本框于多选框的联动 a)
<script language="javascript">
d)
if(document.form1.check.value==1){
e)
document.form1.a.disabled = !document.form1.a.disabled ;
k)
======================================================
m)
<form id="form1" name="form1" method="post" action="">
o)
<input name="check" type="checkbox" id="check" value="1" onClick="lian();" />
r)
<input name="a" type="text" id="a" />
7. 可以在 web.xml 中设置过滤器是否对整个网站有效 . <filter-name>filtergbk</filter-name>
<url-pattern>/*</url-pattern> <url-pattern>/文件夹名字/*</url-pattern>
8. 在平台中退出以后就是把 session 设置为 null, 如果不马上关闭浏览器的话 , 答: 使用HTTP 头信息"Expires" 和 "Cache-Control"
1> no - cache:强制缓存从服务器上获取新的页面
2> no - store : 在任何环境下缓存不保存任何页面
response.setHeader("Cache-control","no-cache");
response.setHeader("Cache-control","no-store");
response.setDateHeader("expires",0);
response.setHeader("Pragma","no-cache");
在启动To m c a t的过程中,可能会遇到一些问题,这里就常见问题进行一些说明。 1) 启动To m c a t失败。出现这种情况时,可能有两种现象: 第一种:执行s t a r t u p . b a t以后没有Ja v a窗口出现。 第二种:有Ja v a窗口出现,但是接着自行退出。 对于第一种情况,很可能是TOMCAT_HOME环境变量设置有问题,打开s t a r t u p . b a t文件, 对于第二种情况,可能是当前系统中已经有一个服务器占用了8 0 8 0端口,这时需要把原先 的服务器关闭,或者利用后面讲的To m c a t的配置方法修改To m c a t的服务端口。也可能是由于 CLASSPAT H设置有误,这时需要检查CLASSPATH是否设置正确。 2) 启动To m c a t成功,可以看到首页,但是不能执行JSP脚本。 这种情况一般是由于CLASSPAT H设置有误或JAVA _ HOME设置有误,经过试验发现,当使 用Wi n d o w s自带的j a v a . e x e(c : / w i n n t / s y s t e m 3 2或c : / w i n d o w s / s y s t e m)时可能会出现这种问题。 在 Wi n d o w s 下使用 To m c a t 时有一个问题需要注意,可以做一个试验,启动 To m c a t 后,在浏 览器的地址栏中键入: http://127.0.0.1:8080/examples/jsp/ HelloWorld . JSP (注意后缀要大写)。 就会发现奇怪的现象,浏览器的窗口中什么都没有,查看 H T M L 源文件就会发现,这个 J S P 文件 的源代码被 To m c a t 完全输出到了浏览器!如果是这样,岂不是服务器端的任何源代码都会被暴 实际上,解决方法很简单,把各种后缀的组合全部写到 To m c a t _ H o m e / c o n f / w e b . x m l 里就可 以了,这样 t o m c a t 会将不同后缀名的 j s p 分开对待,就不会泄露代码了。 11.jsp文件下载不显示乱码(文件内容) Verdana 字体(文件名可用中文) <a href src = “download.jsp?filename=文件名.后缀名”>下载</a>
<% java.io.BufferedInputStream bis=null; java.io.BufferedOutputStream bos=null; try{ String filename=request.getParameter("filename"); filename=new String(filename.getBytes("iso8859-1"),"gb2312"); response.setContentType("application/x-msdownload"); response.setHeader("Content-disposition","attachment; filename="+new String(filename.getBytes("gb2312"),"iso8859-1")); bis =new java.io.BufferedInputStream(new java.io.FileInputStream(config.getServletContext().getRealPath("files/" + filename))); bos=new java.io.BufferedOutputStream(response.getOutputStream()); byte[] buff = new byte[2048]; int bytesRead; while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) { bos.write(buff,0,bytesRead); } } catch(Exception e){ e.printStackTrace(); } finally { if (bis != null)bis.close(); if (bos != null)bos.close(); if (response.getOutputStream()!=
null){
response.getOutputStream().close();
} %> ――――――――――――――――――――――――――――――――――――――― 在开发项目中,经常会遇到大小类的问题,即有两个下拉框 , 一个为主 , 一个为次 , 如果主下拉框选择更新后根据所选择的项从数据库中读取相关数据并更新到次下拉框中 . 比如主下拉框为大类 , 次下拉框为大类下的选项 , 并且页面是没有提交的。 思路是在打开页面时就要所有的大类和小类都从数据库中取出,把所有的小类组装成一个 javascript 小类数组 ( 数组结构为 Array(" 大类编号 "," 小类编号 "," 小类名称 ")) ,当大类改变时,激活一个 javascript 函数从小类数组中取出从属于选中大类的所有小类,把其在小类下拉框显示即可。 <%@ page contentType="text/html;charset=gbk" %> <%@ page import="java.sql.*" %> <%@ page import="java.util.*" %> <%@ page import="java.text.*" %> <jsp:useBean id="dba" scope="page" class="db.DBAccess"> <form name="main" method="post" action="jsp8.jsp" target="_blank"> <TABLE id=AutoNumber1 style="FONT-SIZE: 10pt; BORDER-COLLAPSE: collapse" borderColor=#c0c0c0 cellPadding=0 width=760 border=1> <TD align=middle width=750 bgColor=#f2f2f2 colSpan=2> <TD align=middle width=68> 省 份 </TD> <TD width=682> <select name="maintype" onChange="javaScript:changemaintype(document.main.maintype.options[document.main.maintype.selectedIndex].value);"> <!-- 下面的下拉框数据可以自己改成从数据库读出的 --> <option value="">-- 请选择 --</option> dba.rs = dba.executeQuery("select quybm,quymc from tg_region where len(quybm) = 2 order by quybm"); quybm = dba.rs.getString("quybm"); quymc = dba.rs.getString("quymc"); //System.out.println(mycount); <option value="<%=quybm%>"><%=quymc%></option> <%}}catch(Exception aa){aa.printStackTrace();}%> <script language = "JavaScript"> var subcat1 = new Array(); <!-- 下面的数组数据可以自己改成从数据库读出的 , 格式为 Array(" 省份编号 "," 城市编号 "," 城市名称 "), 如 --> dba.rs = dba.executeQuery("select left(quybm,2) as shenf,quybm as chengs,quymc from tg_region where len(quybm) > 2"); subcat1[<%=iCount%>] = new Array("<%=dba.rs.getString("shenf")%>","<%=dba.rs.getString("chengs")%>","<%=dba.rs.getString("quymc")%>"); }}catch(Exception aa){aa.printStackTrace();}finally{dba.close();}%> function changemaintype(locationid) document.main.detailtype.options[0] = new Option("-- 请选择 --", ""); document.main.detailtype.length = 1; var locationid=locationid; if((subcat1[ii][0] == locationid)) document.main.detailtype.options[document.main.detailtype.length] = new Option(subcat1[ii][2],subcat1[ii][1]); <TD align=middle width=68> 城 市 </TD> <TD width=682> <select name="detailtype"> <option value="">-- 请先选择省份 --</option> <input type="submit" value=" 提交 "/> 1.Oracle8/8i/9 i 数据库( thin 模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl 为数据库的 SID String user="test"; String password="test"; Connection conn= DriverManager.getConnection(url,user,password); 2 、 DB2 数据库 Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); String url="jdbc:db2://localhost:5000/sample"; //sample 为你的数据库名 String user="admin"; String password=""; Connection conn= DriverManager.getConnection( <%@ page contentType="text/html; charset=gbk" %> <%@ page language="java" %> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <FORM METHOD=POST ACTION="uploadimage2.jsp"> 人物 :<INPUT TYPE="text" NAME="name"><BR> 图片 :<INPUT TYPE="file" NAME="image"><BR> <INPUT TYPE="submit" value=" 提交 "> <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> <%@ page import="java.io.*"%> <%@ page import="com.sun.image.codec.jpeg.*"%> <%@ page import="java.awt.image.*"%> <%@ page import="java.awt.*"%> String name=request.getParameter("name"); name=new String(name.getBytes("ISO-8859-1")); String ima=request.getParameter("image"); ima=new String(ima.getBytes("iso8859-1"),"gb2312"); String path=request.getRealPath("/"); FileOutputStream ot = new FileOutputStream(path+name+".jpg"); // ServletOutputStream ot=response.getOutputStream(); // 也可以直接输出显示 FileInputStream in=new FileInputStream(ima); JPEGImageDecoder jpgCodec = JPEGCodec.createJPEGDecoder(in); BufferedImage image = jpgCodec.decodeAsBufferedImage(); JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(ot); out.print(" 上传图片成功! <BR>"); out.print("<IMG width=200 height=200 src='"+name+".jpg' />"); System.out.print(e.toString()); 他不仅实现了连接池的功能 , 而且有一个后端统计接口,可以很方便的了解连接池的使用情况,可以作为项目开发时测试使用,也可以为项目实际运行后为管理员提供访问情、连接情况等信息。 ② Javazoom 的 uploadbean 文件上传组件 项目中要求文件上传功能,如果要我们项目开发一个功能完善的文件上传组件,确实不是一件容易的事情。该组件不仅能将文件上传到服务器上也可将文件上传到数据库中,同时可对上传文件大小、类型进行控制。 ③ JdonJive 中的一些类型转换、表单接收等工具类 <body onLoad=javascript:window.showModalDialog("setPass.aspx",window,"dialogWidth=350px;dialogHeight=240px;help=no;resizable=no;status=no;scroll=no")> select a.a1 c1,a.yaopmc m1,a.a2 c2,b.yaopmc m2 from left(tg_xhzy.zuoy1,11) a1,tg_trule.yaopmc,right(tg_xhzy.zuoy1,11) a2 from tg_xhzy,tg_trule where tg_trule.yaopbm=left(tg_xhzy.zuoy1,11) String path = Request.getRealPath(“/”);// 该方法过时 String path2 = session.getServletContext.getRealPath(“good.xsl”); 20. 如果发布包不在 tomcat/webapps 下面 docBase="C:/javaexecute/TGJXCAPP/WEBTG" workDir="C:/javaexecute/TGJXCAPP/bin"> Timestamp ts = new Timestamp(new java.util.Date().getTime()); String today = ts.toString().substring(0, 10); 1. 在 ACTION 或 SERVLET 中实现验证码图形的绘制 . public class TestFormValue_Action extends Action { public ActionForward perform( HttpServletRequest request, HttpServletResponse response) { response.setContentType("image/jpeg"); ServletOutputStream out = response.getOutputStream(); BufferedImage image = new BufferedImage(35, 14, BufferedImage.TYPE_INT_RGB); Graphics gra = image.getGraphics(); gra.setColor(Color.yellow); gra.fillRect(1, 1, 33, 12); gra.setColor(Color.black); for (int i = 0; i < 4; i++) { if(i==0){draw = String.valueOf(c);} if(i==1){draw = String.valueOf(c2);} if(i==2){draw = String.valueOf(c3);} if(i==3){draw = String.valueOf(c4);} gra.drawString(String.valueOf(draw), i * 7 + 4, 11); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); <img alt="" src="/tgjxc/testFormValue_Action.do" width="40" height="16"/> window.showModalDialog("<%=SysInitParam.CONTEXT_PATH%>/testViewAction.do",window,"dialogWidth:600px;dialogHeight:600px"); 在弹出的对话框中的 <head> <base target="_self"> </head> 加上这一句话 , 对话框中的链结写法 : <a href="" οnclick="document.all.mya.href='testViewAction.do?search='+document.all.search.value" name="mya"> 搜索 </a> <a href=”” οnclick=”document.all.mya.href=’testViewAction.do?search=’+document.all.search.value” name=”mya” 搜索 </a> <script language="javascript"> alert(document.all.mytext.value); <input type="text" name="mytext"/> <input type="button" οnclick="myform();" /> update bbscs_adv set url=url+1 where id = '1' 25 .过滤.JSP 页面 只能通过程序来转发 不能手动请求????????????? 26. Timestamp ts = new Timestamp( new java.util.Date().getTime()); String today = ts.toString().substring(0, 10); 27.Hibernate 的取得连接类 ( 基于线程的 ) import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.cfg.Configuration; * Configures and provides access to Hibernate sessions, tied to the * current thread of execution. Follows the Thread Local Session * pattern, see {@link http://hibernate.org/42.html}. public class HibernateSessionFactory { * Location of hibernate.cfg.xml file. * NOTICE: Location should be on the classpath as Hibernate uses * #resourceAsStream style lookup for its configuration file. That * is place the config file in a Java package - the default location * is the default Java package.<br><br> * <code>CONFIG_FILE_LOCATION = "/hibernate.conf.xml". * CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".</code> private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml"; /** Holds a single instance of Session */ private static final ThreadLocal threadLocal = new ThreadLocal(); /** The single instance of hibernate configuration */ private static final Configuration cfg = new Configuration(); /** The single instance of hibernate SessionFactory */ private static org.hibernate.SessionFactory sessionFactory; * Returns the ThreadLocal Session instance. Lazy initialize * the <code>SessionFactory</code> if needed. * @throws HibernateException public static Session currentSession() throws HibernateException { Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) { if (sessionFactory == null) { cfg.configure(CONFIG_FILE_LOCATION); sessionFactory = cfg.buildSessionFactory(); .println("%%%% Error Creating SessionFactory %%%%"); session = (sessionFactory != null) ? sessionFactory.openSession() threadLocal.set(session); * Close the single hibernate session instance. * @throws HibernateException public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); private HibernateSessionFactory() { classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar; %JAVA_HOME%/lib/htmlconverter; 1. CVS cvsnt-2.5.03.2151.msi 2. My.Eclipse.Enterprise.WorkBench.v4.0.1 只能使用于 eclipse-SDK-3.1 full "Eclipse sdk" 版本 3. jdk classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar; %JAVA_HOME%/lib/htmlconverter; 4. Embarcadero DBArtisan Version 8.1.0(Build 3097) http://www.embarcadero.com 5. PL/SQL Developer Version 6.0.6.947 http://www.allroundautomations.com/plsqldev.html 7. AllFusion ERwin DataModeler 30. 在 oracle 中删除与用户有关的表 , 索引等 转载地址:http://eqfci.baihongyu.com/