[JSP]javaBean的class文件存放位置说明

说明一下我的路径:
tomcat7.0装在/usr/local/tomcat7
jdk装在/usr/local/java/jdk1.4.1

在/usr/local/tomcat7/conf/server.xml添加

并将端口8080改为80
然后新建index.jsp文件放在/home/www/wwwroot/下。
于是可以用http://localhost/直接访问index.jsp了。
============================================
1。首先简单介绍一下javaBean:
我的理解:javaBean就是一个封装好的类。

2。javaBean的编写
同普通的java类的编写,只是有一些特别的规定:
如:
[1]如果类的成员变量的名字是xxx,那么类中可以用两个方法:
getXxx()和setXxx,分别设置和获取xxx的值。
[2]对于布尔型变量,可以用is代替上面的get和set
[3]类中方法的访问属性必须是public的。
[4]类中如果有构造方法,那么也得是public的,并且是无参数的。

如下面就是一个简单的圆形的类,定义了半径,可以计算面积和周长,我取名为Circle.java。
注意其中的红色文字。
=============================================
package first;
import java.io.*;
public class Circle {
int radius;
public Circle()
{
radius=1;
}
public int getRadius()
{
return radius;
}
public void setRadius(int newRadius)
{
radius=newRadius;
}
public double circleArea()
{
return Math.PI*radius*radius;
}
public double circleLength()
{
return 2.0*Math.PI*radius;
}
}
=============================================

3。编译,存放class文件
俺就用javac Circle.java,前提是你设置好了环境变量。
好了,如果没错,文件就编译好了,有个Circle.class文件,这怎么办呢,把它放哪呢?
放在原地是不好使的,不信就试试。具体放哪一会再说。

4。下面是调用javaBean的jsp文件,我直接用index.jsp。
=============================================

<%@ page contentType=”text/html;charset=GB2312″ %>
<HTML>
<HEAD>
<META http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
<TITLE>你好</TITLE>
</HEAD>
<BODY>
<jsp:useBean id=”haha” class=”first.Circle” scope=”page” />
<%
haha.setRadius(100);
%>
<P>圆的半径是:<%=haha.getRadius()%>
<P>圆的周长是:<%=haha.circleLength()%>
<P>圆的面积是:<%=haha.circleArea()%>
</BODY>
</HTML>

=============================================

5。前面都是废话,这里是重点
现在文件齐全了,注意上面的蓝色部分开始是没有的,是我后来加的。

在/home/www/wwwroot/下建立目录WEB-INF,在它的下面再建立目录classes,在它的下面再建立一个目录first,再把Circle.class文件copy到这里。完整路径就是/home/www/wwwroot/WEB-INF/classes/first/Circle.class

在Circle.java的最顶上加package first;
在index.jsp中class=”Circle”变为class=”first.Circle”。

各种Linux发行版本的VMWare镜像下载 CentOS Debian Fedora FreeBSD OpenSUSE Ubuntu

各种Linux发行版本的VMWare镜像下载 CentOS Debian Fedora FreeBSD OpenSUSE Ubuntu在这里下载:

http://www.thoughtpolice.co.uk/vmware/

提供了CentOS, Fedora, Debian, Ubuntu, FreeBSD, OpenSUSE的VMWare镜像,包括各种版本的32位和64位版。
再不用到处找了,最新的都有…
还有lnmp 安装包地址:

http://www.lnmp.org

Yum安装PostgreSQL 9.1

1.添加PosgreSQL Yum Repository

访问http://yum.pgrpms.org/reporpms/repoview/letter_p.group.html,下载并安装和当前系统对应的rpm文件。

# wget http://yum.pgrpms.org/reporpms/9.1/pgdg-centos-9.0-2.noarch.rpm
# rpm -Uvh pgdg-centos-9.1.noarch.rpm

修改原始的yum仓库配置,在[base]和[updates]部分的尾部追加exclude=postgresql*用以取消从默认仓库安装和更新PostgreSQL。

# cd /etc/yum.repos.d
# vi CentOS-Base.repo

安装或者升级postgresql-libs

# yum upgrade postgresql-libs

2.安装PostgreSQL Server

# yum install postgresql91-server

初始化数据库,默认路径为/var/lib/pgsql/9.1/data

# service postgresql-9.1 initdb

启动服务

# service postgresql-9.1 start

连接到数据库,修改管理员密码
(这里需要先修改配置文件/var/lib/pgsql/9.1/data/pg_hba.conf 将peer或别的改为trust,否则会提示错误Peer authentication failed for user “postgres”)

# psql -U postgres
postgres=# ALTER USER postgres WITH PASSWORD ‘admin’;
postgres=# \q

修改客户端认证配置文件,将METHOD由默认的ident改为md5

# vi /var/lib/pgsql/9.1/data/pg_hba.conf

重启服务

# service postgresql-9.1 restart

Android实现翻页功能原理

第一种翻页效果如下:

 

 

实现原理:

  当前手指触摸点为a,则 a点坐标为(ax,ay), 由三角形acb与三角形cmb为对称三角形并且直线cp为am垂直平分线,则 B点坐标为(ax/2,ay/2)。

作gf垂直于om且cb垂直于am, 三角形cfg与gfm相似,则 cf:gf = gf:mf      cf=(gf * gf) / mf     gf长度为g点纵坐标     mf长度为g点横坐标    

cf长度可求    c点坐标可求 由c点、g点可确定过两点间的直线, 当该直线中x=0时求出与y足交点。

 

 

 第二种翻页效果

 

 实现原理:

 使用贝赛尔曲线。曲线有四个点:起始点、终止点(也称锚点)以及两个相互分离的中间点。滑动两个中间点,贝塞尔曲线的形状会发生变化。

根据第一种翻页效果原理可以确定a、e、h、f、g ,由eh平行于cj且af垂直于eh,则 af垂直于cj则三角形egf相似于三角形cnf 则有ef:cf = gf:nf 。 

设n为ag中点 则有cf=(3/2)*ef ,则c点坐标可求 由c点、k点坐标已知可知过两点间的直线

由该直线可计算与y轴相交点j 由a、e、c、j可计算两条直线的相交点b 同理可求点k。

 

在Android中的具体实现步骤:

起始页展示 

1.创建屏幕尺寸的bmp 2.将图片转化为canvas 3.获取起始页面数据 3.在canvas中绘制起始页数据 4.在当前视图中复写onDraw进行重绘出bmp对象 

翻页处理 

1.初始化时创建两个bmp(bmp1、bmp2)并将其转换为canvas(canvas1、canvas2)  

2.获取手势首次触摸的区域 (例:当首次点击屏幕的位置x<50&&y<50则为左上角)

3.根据首次点击区域判断需要展示的数据(例:首次点击处于左侧区域【左上、左下】的则判断操作为下一页操作)

4.获取下一页中数据并绘制出来在canvas2中

5.根据1中获取的区域位置调用起始动画使视图移动到手势首次点击位置

6.获取手势每次移动的坐标并根据移动坐标计算绘制的各个点的坐标

7.每次移动刷新视图

Htaccess文件用法集锦

1.时区设置

有些时候,当你在PHP里使用date或mktime函数时,由于时区的不同,它会显示出一些很奇怪的信息。下面是解决这个问题的方法之一。就是设置你的服务器的时区。你可以在这里找到所有支持的时区的清单。

  1. SetEnv TZ Australia/Melbourne

 

2. 搜索引擎友好的301永久转向方法

为什么这是搜索引擎友好的呢?因为现在很多现代的搜索引擎都有能根据检查301永久转向来更新它现有的记录的功能。

  1. Redirect 301 http://www.aqee.net/home http://www.aqee.net/

3. 屏蔽下载对话框

通常,当你下载东西的时候,你会看到一个对话框询问你是保持这个文件还是直接打开它。如果你不想看到这个东西,你可以把下面的一段代码放到你的.htaccess文件里。

  1. AddType application/octet-stream .pdf
  2. AddType application/octet-stream .zip
  3. AddType application/octet-stream .mov 继续阅读 »

chm转html + html转chm方法

chm转换为html方法:

我们通常见到的chm电子书文件是用系统自带的hh.exe来进行观看的,其实hh.exe也有一个命令可以将chm转换为html。hh命令如下:

hh -decompile [html保存路径]  [chm文件]

例如 hh -decompile d:\天龙八部.chm

可以用批处理让这个反编译的操作更加简单。批处理程序如下:

 

@echo off

title CHM电子书反编器BAT版

color a

echo.

set /p urlfile=请把要反编的CHM电子书拖进来(再按回车键):

copy %urlfile% chmfile.chm > nul

hh -decompile .\CHM chmfile.chm

rem del /q chmfile.chm > nul  可以将这句话前面的rem去掉,去掉后反编译成功后则删除chm源文件。

echo.

echo 反编文件成功。保存在.\CHM文件夹中,按任意键退出!

rem pause > nul

exit

当然也可以下载第三方工具将chm转换为html如:CHM Encoder、chm2web 个人觉得没有必要,有hh.exe就够了。

 

html转换为chm方法:

这个必须使用第三方工具,其中最好的软件就是Easy CHM。

说Easy CHM是html文件转换为chm文件最好软件是有原因的,记得在大学时想将自己做的网页做成chm文件,找了许多方法,几乎将所有的chm转换软件全部下载下来用,进行仔细的对比测评,最终选择了Easy CHM。因为只有这个软件能完整的将所有的资源都包含在chm文件里,格式显示原汁原味,效果非常完美。推荐大家使用这个软件。

花心路之花店出来的心事<一>

       喜欢花,更喜欢养花。喜欢花的自在,或在阳光下独自烂漫,或在喧哗的人群里肆意地绽放,静谧地享受着一切,或喜或忧,与其它无关。虽然曾能把仙人掌都养死的我,仍不会放弃养花的念头。几经努力,终于种了几盘像样的花了。

       约情人节后的一月,不经意间邂逅一家花店。花店很小,花却很多。门边包扎好的玫瑰特别的耀眼,还有那水百合散发地幽香,如果不是一庄心事,估计谁都不会拒绝它们地魅力。一边惋惜着,又一边祝福着它们。

      “老板有水仙么?”,“对不起,我们这没水仙,这时候没水仙卖了吧”。我忘了这里是深圳,深圳的冬春都来得那么早,几乎都没有冬天,这时候怎还会有水仙呢。欠我的水仙,我记在心里。我不说不代表我忘记了。你没及时送给我心里惦着我却不知道,水仙没有夏天,但是春天和夏天还有很多很多漂亮的花。我并非钟情于水仙,只是想找盘不寻常的花那颗不寻常的心。你的努力却没法让我感受到,又没其他表示。谁知道你在乎着你在乎的什么。

        一盘长得很好的小玫瑰映入我的眼帘。我决定买下它。你却说如此贵也买,傻瓜。傻瓜又如何,难得我那份心情。花是买了,心也跟着碎了,皆因那桩难以释怀的心事。好吧,我又错了。你已经大跨步向前走了,憧憬着我以后的幸福,而我还处于小女生的爱恋阶段。这个不可逾越的阶段,我想我逾越不了,我没有长翅膀,跟不上你的步伐。抱着满受委屈的我,承诺着我们要天天谈恋爱,以后的日子会给我不断的惊喜。我记着,我不提醒你。你不言语,因为你说过行动是最好的证明。

      小玫瑰呀,小玫瑰,你可要争气,你是我满腹的委屈与一百个倔强和几分无理霸道才来到我家窗台的。好好成长吧。                                                                                                 小玫瑰   

CString,int,string,char*之间的转换

《C++标准函数库》说的
有三个函数可以将字符串的内容转换为字符和C—string
1.data(),返回没有”/0“的字符串
2,c_str(),返回有”/0“的字符串
3,copy()

………………………………………………………..
int  CString:
CString.Format(“%d”,int);
………………………………………………………..
string  CString
CString.format(“%s”, string.c_str());
用c_str()确实比data()要好.

………………………………………………………..
char CString
CString.format(“%s”, char*); 

 CString strtest;
char * charpoint;
charpoint=”give string a value”;
strtest=charpoint; //直接付值

………………………………………………………..
CString  int
CString  ss=”1212.12″;
int temp=atoi(ss); //atoi _atoi64或atol

将字符转换为整数,可以使用atoi、_atoi64或atol。
int int_chage = atoi((lpcstr)ss) ;
或:
CString str = “23″;
UINT uint;
sscanf(str, “%d”, uint);
………………………………………………………..

继续阅读 »

老公经典语录爆料

        老公在写程序遇到难题时或是遇到小郁闷的事情的时候,喜欢自言自语爆出口“狗日的”。某天,我和老公走在乡街小路上,迎面来了只狗,长得甚是可爱。于是想逗逗它。结果那狗压根就没把我们当回事,甩都不甩起我们。老公郁闷了,随口就是一句“狗日的”。哈哈,我顿时狂笑,“哥,你总算是骂对一句话了@_@”。老公猛反应过来,一起狂笑。

android 中创建文件出现 Permission denied错误

code:

  FileOutputStream fos = null;
  try {
   File file = new File(“sdcard/pimsky/location/”);
   File f = new File(“sdcard/pimsky/location/” + infoseq + “.jpg”);
   if (!file.exists()) {
    file.mkdir();
   }
   if (!f.exists()) {
    f.createNewFile();
   }
   String fileName = “sdcard/pimsky/location/” + infoseq + “.jpg”;
   fos = new FileOutputStream(fileName);
   byte[] data = ClientCommonUtils.convertStr2Bytes(pic, “”, 0);
   fos.write(data);
   fos.flush();
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if (fos != null) {
    try {
     fos.close();
    } catch (Exception e) {
    }
   }
  }
代码没错,但文件创建不了,why?
1:
AndroidManifest.xml中加权限
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”></uses-permission>
<uses-permission android:name=”android.permission.MOUNT_UNMOUNT_FILESYSTEMS”></uses-permission>
没错,权限必须的
2:须明白
Environment.getDataDirectory()
你想在/data文件夹下一级目录进行操作是不被允许的。能操作文件夹只有两个地方:
1.sdcard
2./data/<package_name>/files/    详见api doc:
docs/guide/topics/data/data-storage.html#filesExternal    我在sdcard创建这也没错,问题在哪

终于找到了问题了,我在使用真机测试时,不小心手机开了磁盘加载模式,磁盘加载到电脑去了,测试的时候找不到sdcard,杯具。。。