iLeichun

当前位置:首页个人日志

Java Servlet将图片保存到数据库

分类:个人日志  来源:网络  时间:2011-6-2 23:17:23

/*
 * 为了提高速度,我们常将图片保存到文件夹下。
 * 本文将为您介绍在Java中如何将图片保存到数据库,使用了Servlet先将图片转换为二进制,再将二进制图片数据保存到数据库。 
 */

package com.kancool.base.service.support;

import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import com.kancool.base.dao.support.*;

public class BasicAddImageServiceSupport extends HttpServlet {

 /**
  * The doGet method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to get.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  PrintWriter out = response.getWriter();
  try{
   Class.forName("com.mysql.jdbc.Driver");
   Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/cool","root","mysql");
   String imageTitle=new String((request.getParameter("iamgetitle")).getBytes("ISO-8859-1"),"gb2312");
   String image=new String((request.getParameter("image")).getBytes("ISO-8859-1"),"gb2312");
   FileInputStream ima=new FileInputStream(image);
   String sql="insert into images(image,title) values(?,?)";
   PreparedStatement pstmt=conn.prepareStatement(sql);
   pstmt.setBinaryStream(1,ima,ima.available());
   pstmt.setString(2,imageTitle);
   pstmt.executeUpdate();
   out.print("success!");
  }catch(Exception e){
   e.getStackTrace();
  }
 
 }

 /**
  * The doPost method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to post.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request,response);
 }

}

 

JQuery限制复选框可选个数

分类:个人日志  来源:网络  时间:2011-6-1 21:29:38

本代码将告诉你如何通过使用JQuery限制复选框checkbox的可选个数,例如某一复选框限制只能选择2个选项,只要不是选择2个就不允许提交表单。
<script language="javascript" src="js/JQuery.js" >
<script language="javascript">
 $(document).ready(function(){
  $("#submit").click(function(){
      var CheckCount=0;
      $("[name=¹mybook¹]").each(function(){
   if($(this).attr("checked")){
       CheckCount++;
   }
      });

      if(CheckCount!=2){
       alert("请选择两项!");
    return false;
      }
      return true;
  });
 });
</script>

HTML代码如下:
<html>
 <head>
  <title>JQuery限制复选框可选个数</title>
 </head>
 <body>
  <form name="myform" action="" method="post">
   a: <input type="checkbox" name="mybook" value="0" />&nbsp;
   b: <input type="checkbox" name="mybook" value="1" />&nbsp;
   c: <input type="checkbox" name="mybook" value="2" />&nbsp;
   d: <input type="checkbox" name="mybook" value="3" />&nbsp;
   e: <input type="checkbox" name="mybook" value="4" />&nbsp;
   f: <input type="checkbox" name="mybook" value="5" />&nbsp;<br />
   <input id="submit" type="submit" name="submit" value="提交" />&nbsp;
   <input id="reset" type="reset" name="reset" value="重置" />
  </form>
 </body>
</html>

Java统计不同字符串出现的次数

分类:个人日志  来源:网络  时间:2011-6-1 0:11:34

package com.taobao.web.servlet;

public class IndexOfTest {

 /**
  * 本文通过代码的方式介绍如何使用Java统计某一字符串中不同子字符串出现的次数,如“Java统计不同字符串出现的次数”中“a”的出现次数,很显然是2次。
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String str1="pjhuiyhoeijtohygdifei";
  String str2="这是一个用java语言编写的统计字符串出现次数的代码,这是一个用java语言编写的统计字符串出现次数的代码";
  //String str2="出现出现";
  String s1="ui";
  String s2="统计字符串";
  String s3="i";
  String s4="出现";
  //查找并显示子串出现的位置
  int i1=str1.indexOf(s1);
  int i2=str2.indexOf(s2);
  System.out.println(i1);
  System.out.println(i2);
  
  //显示子串出现的次数
  int count1=0;
  int count2=0;
  for(String tmp=str1;tmp!=null&&tmp.length()>=s3.length();){
   if(tmp.indexOf(s3)==0){
    count1++;
    tmp=tmp.substring(s3.length());
   }else{
    tmp=tmp.substring(1);
   }
  }

  for(String tmp=str2;tmp!=null&&tmp.length()>=s4.length();){
   if(tmp.indexOf(s4)==0){
    count2++;
    tmp=tmp.substring(s4.length());
   }else{
    tmp=tmp.substring(1);
   }
  }
  System.out.println("""+s3+"""+"  在"+"""+str1+"""+"中出现 "+count1+" 次");
  System.out.println("""+s4+"""+"  在"+"""+str2+"""+"中出现 "+count2+" 次");
 }
}
 

PHP定时自动执行代码

分类:个人日志  来源:网络  时间:2011-5-29 12:57:18

<?php
 /**
  *在某些网站的设计中,根据客户要求,有些数据需要实时更新,例如定时生成静态页面、定时更新数据等。
  *这种情况下,如果使用PHP自动定时执行代码就显得非常有效了。
  */
 //即使关掉浏览器,也可以继续执行.
 ignore_user_abort();
 //设置执行时间为无限制,但php中默认的执行时间是30秒,可以通过修改php.ini文件对此属性进行相应的修改
 set_time_limit(0);
 //设置每隔10分钟运行一次,该时间可以根据具体情况做相应调整
 $time=10*60;
 //按预先设置的时间等待相应时间循环执行代码
 do {
  //休眠相应时间后继续执行后面的代码
  sleep($time);
  for($i=0; $i<100; $i++) {
   echo $i;
  }
 }while(true);
?>

PHP生成水印图片的代码

分类:个人日志  来源:网络  时间:2011-5-26 22:13:12

<?php

/**
* 在用PHP上传图片时,出于对保护版权的需要,给图片加上水印是个不错的主义。这时就要用到PHP图片处理的相关函数对原图片和水印图片进行合成。
*/

   //背景图
   $image = imagecreatefromjpeg ("200809250916281618.jpg");

   //水印图
   $imagebg = imagecreatefromgif("watermark800.gif"); // transparent PNG

   //水印图片宽、高
   $x = imagesx($imagebg);
   $y = imagesy($imagebg);

   //背景图片宽、高
   $xx = imagesx($image);
   $yy = imagesy($image);

   $newImg = imagecreatetruecolor($xx, $yy);


   //分别为:背景图、水印图、水印图x坐标、水印图y坐标、0、0、水印图宽、水印图高、水印图透明度
   imagecopymerge($image, $imagebg, 100, 100, 0, 0, $x, $y,50);

   Header("Content-type: image/jpeg");
   imageJpeg ($image,"cc.jpg");
   imageJpeg ($image);

   imagedestroy ($image);
   imagedestroy ($imagebg);
   imagedestroy ($newImg);
?>

Access错误“由于您和其他用户试图同时改变同一数据,导致Microsoft Jet数据引擎停止进程!”

分类:个人日志  来源:网络  时间:2011-5-24 22:25:51

    当用Access试图打开一个数据库文件(mdb文件)时,弹出错误提示“由于您和其他用户试图同时改变同一数据,导致Microsoft Jet数据引擎停止进程!”有可能是你的数据库文件有损坏。此时你可以:

    一、看看是否之前是否对该文件有备份过,如果有的话可以打开备份文件以替代该文件(前提是没有损坏的)。

    二、使用Access数据库修复软件对数据库文件进行修复。

     三、尝试使用Access自带的数据库修复程序进行修复,依次点击office access软件的工具——数据库实用工具——压缩和修复数据库打开。

Java、PHP、AS中set/get方法的异同

分类:个人日志  来源:网络  时间:2011-5-14 22:29:11
在面向对象编程中,为了更好地实现封装,必须设置类中变量、函数的相关属性。大多数面向对象语言都可以设置四种属性:public、缺省、protected、private。除了private范围的变量、函数不能直接被外部文件访问外其他三种都是可以的,但有时候外部文件必须访问某个文件的private属性时,我们就不得不通过相应的函数提供访问接口,最常用的就是set/get了。本文通过举例说明对Java、PHP、AS中的set/get方法进行分析,以对它们之间的异同进行比较。
代码一(Java):
public class A {
private String name;
public int age;
public A() {
name = "";
age = 0;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
 
public class B {
public static void main(string[] args) {
A a = new A();
//private属性不能直接访问
a.setName("张三");
//public属性可以直接访问
a.age = 20;
System.out.println("姓名:" + a.getName());
System.out.println("年龄:" + a.age);
}
}
 
显示结果:
姓名:张三
年龄:20
 
代码二(PHP):
方法一(类似Java)
<?php
class A {
private $name;
public $age;
function A() {
$name = "";
$age = 0;
}
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $name;
}
}
?>
 
<?php
class B {
function B() {
$a = new A();
//private属性不能直接访问
$a->setName("张三");
//public属性可以直接访问
$a->age = 20;
echo "姓名:" + $a->getName();
echo " ";
echo "年龄:" + $a->age;
}
}
?>
 
<?php
$b = new B();
?>
 
显示结果:
姓名:张三
年龄:20
 
方法二(推荐):
<?php
class A {
private $name;
public $age;
__construct() {
$name = "";
$age = 0;
}
public function __SET($name,$n) {
$this->name = $n;
}
public function __GET($name) {
return $this->name;
}
}
?>
 
<?php
class B {
function B() {
$a = new A();
//private属性不能直接访问,有了name的__SET()方法后,可以通过访问属性的方式访问name,下同
$a->name = "张三";
//public属性可以直接访问
$a->age = 20;
echo "姓名:" + $a->name;
echo " ";
echo "年龄:" + $a->age;
}
}
?>
 
<?php
$b = new B();
?>
 
显示结果:
姓名:张三
年龄:20
 
代码三(AS):
方法一(类似Java)
public class A {
private name:String ;
public age:unint ;
public function A() {
name = "";
age = 0;
}
public function setName(name:String):void {
this.name = name;
}
public function getName():String {
return name;
}
}
 
public class B {
public function B() {
a:A = new A();
//private属性不能直接访问
a.setName("张三");
//public属性可以直接访问
a.age = 20;
trace("姓名:" + a.getName());
trace(" ");
trace("年龄:" + a.age);
}
}
 
b:B = new B();
 
显示结果:
姓名:张三
年龄:20
 
方法二(推荐,类似PHP中“方法二”):
public class A {
private name:String ;
public age:unint ;
public function A() {
name = "";
age = 0;
}
public function set n(name:String):void {
this.name = name;
}
public function get n():String {
return name;
}
}
 
public class B {
public function B() {
a:A = new A();
//private属性不能直接访问
A.n = "张三";
//public属性可以直接访问
a.age = 20;
trace("姓名:" + a.n);
trace(" ");
trace("年龄:" + a.age);
}
}
 
b:B = new B();
 
显示结果:
姓名:张三
年龄:20
 

 

“五一”这天气,什么都不好做

分类:个人日志  来源:网络  时间:2011-5-2 12:45:36

        又一年“五一”了,本着“劳动光荣”的优良传统,本打算好好打发一下这个时间的。可惜这天气天天下雨,很多地方都不好去玩了,之前的计划也泡汤了。说去玩吧,得打雨伞,外面的雾也很大,不好拍照。

        说实话,这种假期和普通的周末差不了多少,也就多了一天而已。此外,外地的游客多得很,交通很拥挤,如果不是很急的话还不如其他时间去玩玩来得快活。

       祝各位关注我的人节日快乐。

JavaScript对不同html对象的取值、赋值方法

分类:个人日志  来源:网络  时间:2011-4-29 0:16:52

取值操作:

//对input等的取值

//通过id属性取值

var ht=document.getElementById("search").value

//通过name属性取值

var ht=document.getElementByName("search").value

 

//对div、span等的取值

//通过id属性取值

var ht=document.getElementById("search").innerHTML; 

//通过标签名称取值

var ht=document.getElementByName("search").innerHTML;

 

赋值操作:

//对input等的赋值

//通过id属性

document.getElementById("c").value=bb;

//通过name属性

document.getElementByName("c").value=bb;

 

//对div、span等的

//通过id属性

 

document.getElementById("c").innerHTML=ht;

//通过标签名称

document.getElementByName("c").innerHTML=ht;

Flex中AS错误“packages cannot be nested”的原因与解决

分类:个人日志  来源:网络  时间:2011-4-28 13:16:53

当在MXML中的使用如下语句导入外部as文件时,一般情况下是没有问题的

<mx:Script source="Myflex.as" />

 

但如果外部as文件提示错误“packages cannot be nested”,原因是:导入的Myflex.as中使用了package定义包名

 

使用<mx:Script source="Myflex.as" />导入的外部as文件不能是类文件(提示class cannot be nested错误),也不能有包package定义(提示packages cannot be nested错误),只能是as脚本。

 

说明:若要使用类文件,就要写在CDATA中,使用import导入后初始化,否则将提示错误。如:

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml" layout="absolute" >

   <mx:Script>
      <![CDATA[
          import com.Man;

          man:Man=new Man();

                  man.name="张三";

      ]]>
  </mx:Script>
  <mx:Canvas x="0" y="0" id="mapCanvs" verticalScrollPolicy="auto" horizontalScrollPolicy="auto" />
</mx:Application>