当前位置:首页 > 网络编程 > WEB编程 > JSP > 问题实录(三)

问题实录(三)

点击次数:33 次 发布日期:2008-11-26 16:33:38 作者:源代码网
源代码网推荐
  发布日期:2003-12-01 作者:Cnjsp.org 阅读人次:2843

  41. 问:我的applet code 中用到jbutton 时就出错是否由于ie不支持swing package 请问应怎么办?

  答:JBUTTON是SWING基本包啊,只要把jdk/jre/lib/rt.jar放在classpath就行了.不要加载任何别的库。

  42. 问:不知道java是否支持midi格式,如果支持,应该怎么把wave格式转换成midi格式?

  答:目前还不行,可以看一下JMF三个版中对MIDI的格式支持是read only,而WAVE是read/write,MIDI只能播放,不能生成。

  43. 问:在jsp里面防止用户直接输入url进去页面,应该怎么做呢?

  答:

  一是从web服务器控制,对某一目录的所有访问要通过验证.

  二是在要访问的页面中加入控制.这个一般用session,也可以用请求状态码实现

  44. 问:

  例如后台有一计算应用程序(此程序运算起来很慢,可持续几分钟到几小时,这不管,主要是能激活它),客户机讲任务提交后,服务器对任务进行检测无误后将向服务器后台程序发送信息,并将其激活。要求如下:

  1)首先将后台程序激活,让它执行此任务(比如,前台将计算的C代码提交上后,后台程序程序能马上调用,并将其运行)

  2)要在前台JSP页面中显示运行过程信息(由于运行时间长,希望让客户看到运行过程中产生的信息)如何完成?

  答:

  活是可以的,运行一个shell让它去运行后台就行,但不可能取出运行信息,因为HTTP的超时限制不可能永远等你后台运行的,而且信息如果要动态实时推出来就得用SERVER PUSH技术。

  45. 问:数据库是datetime 型 ,插入当前时间到数据库?

  答:

  java.sql.Date sqlDate = new java.sql.Date();

  PreparedStatement pstmt = conn.prepareStatement("insert into foo(time) values(?)");

  pstmt.setDate(1,sqlDate);

  pstmt.executeUpdate();

  46. 问:怎样去掉字符串前后的空格。

  答:String.trim()。

  47. 问:session怎样存取int类型的变量?

  答:

  session.setAttribute("int", i+"");

  int i = Integer.parseInt(session.getAttribute("int"));

  48. 问:在javascript中如何使输出的float类型的数据保留两位小数。

  答:Math.round(aaaaa*100)/100。

  49. 问:在bean种如何调用session。

  答:

  你可把session对象作为一个参数传给bean

  在BEAN中定义HttpServletRequest request;HttpSession session;

  然后

  session = request.getSession(false);

  false为如果session为空,不建立新的session

  将session作为参数传入.其实只要将request传入就可以

  50. 问:如何把txt或word文件按原格式显示在jsp页面或servlet上?

  答:

  其实一个非常简单的解决方法就是在服务器的MIME中指点定TEXT和WORD的解释方式,然后用JSP或SERVLET生成它就行了,客户端就会自动调用相应程序打开你的文档。

  如果是希望按原格式的显示在页面上,而不是调用其他程序打开那么你可以试试用WEBDEV协议,可以说这是MS的一个亮点.它是在WEB方式下打开文档,和共享一样.完全符合的要求。

  51. 问:object的clone方法为什么不能直接调用?

  答:

  这个方法在object中是protected

  为什么要把这个方法定义为protected,这是一个折中,它的目的是想知道你这个方法在Object里只是一个标记,而不是一个实现,比如

  public class Object

  {

  .............

  protected Object clone()

  {}

  }

  所以直接继承的clone()方法并不能做任何时,你要使用这个方法就要重载这个方法并放宽访问权限为public,或实现cloneable接口.

  但它没法这样告诉你它没有真的实现,只好用protected 方法加以警示

  52. 问:一个页面中如何刷新另外一个页面?

  答:

  要求是这些面页必须有关联,一是它们都有一个共同的顶层帧,也就是说是一个帧内的分级页面,当然可以是任意级,帧内再分帧也可以,另一个可能是当前窗口弹出的窗口,如果没有联系,那就不可能用一个页面刷新另一个页面.

  帧内只要一级一级引用就行了.

  比如在左帧中一个页面中写

  top.right.location.reload();那么名为right的右帧中的页面就会刷新.

  弹出的一样,用open时的名称刷新子窗口,子窗口用opener刷新主窗口

  53. 问:如何在jsp中怎么样向客户端写cookies?

  答:

  Cookie coo = new Cookie(name, value);

  HttpServletResponse.addCookie(name);

  54. 问:为什么jTextField1.setText("aaabbb");jTextField2.setText("AAABBB"); 得到的字体宽度不一样?

  答:就是说如果不是指定为等宽字体,每个字体的宽度都是不一样的.因此JAVA中用FontMetrics 类来取字符宽度。

  55. 问:String kk=application/octet-stream; name="G:/SMBCrack.exe";如何得到SMBCrack.exe?

  答:

  这应该是解析上传时候的二进制流得到的

  这一行里面格式是固定的,取到name="后面的字符串,然后把";去掉。

  然后取最后一个/后面的所有字符组成一个新字符串就行了。

  56. 问:如何传值并不刷新页面?

  答:

  弹出一个页面进行值的选择或者输入,ok后使用将值传给原窗口,使用javascript关闭打开的窗口即可:

  window.close();opener.focus();

  57. 问:有一个字符串:“EF0C114EA4”,如何变为a[0] = 0xEF a[1] = 0x0C a[2] = 0x11 a[3] = 0x4E a[4] = 0xA4?

  答:

  String str="EF0C114EA4F";

  out.print(str+"");

  int l=str.length()/2+str.length()%2,j=0,k=0;

  String[] a=new String[l];

  for(int i=0;i<l;i++){

  if(str.length()-j==1)

  k=str.length();

  else

  k=j+2;

  a[i]="0x"+str.substring(j,k);

  out.print("a["+Integer.toString(i)+"]="+a[i]+"");

  j+=2;

  }

  58. 问:怎样将一个int转换成一个四字节的byte数组?

  答:

  int x = 1234567;

  byte[] b = new byte[4];

  for(int i=0;i<b.length;i++)

  {

  b[i] = (x >>( i*8)) & 0xFF;

  }

  59. 问:indexOf()的使用需要注意什么?

  答:参数是指从第几位(1,2,3,...)开始搜索,而返回值是指搜索到的位置(0,1,2,3.......)注意是从零算起的。

  60. 问:在Java应用程序中如何动态的添加一个按钮?

  答:

  这里涉及一个组件重绘的问题,组件要先于panel被显示之处存在,如果一panel已经显示了,那么加在上面你能看到吗?但如果在同一个panel上, 先有button A,假如按下它加了button B,这时你如果使整个panel重给,那么A本身要重绘,它的事件监听就没有了,当然也就加不成B 了,所以如果要先有另一个panel,当按A时把B加在这个panel上并重绘这个paenl,其实更好的方法是先把B加在panel中,同一个也行.把它setVisiable(flase),按A时设为true。

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华