- 浏览: 22155 次
- 性别:
- 来自: 深圳
最新评论
文章列表
公钥,私钥和数字签名理解
- 博客分类:
- 技术
一、公钥加密
假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。
我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用
数字2,就是我的私钥,来解密。这样我就可以保护数据了。
我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥,
只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。
二、私钥签名
如果我用私钥加密一段数据(当然只有我可以用私钥加密, ...
问及struts方面的内容:aciton是否thread safe?
下面是找的另一位同胞的文章:
action到底是thread safe还是unsafe呢 我们来看看servlet是否是thread safe ,action都是继承至servlet的
看看其他资料的解释:
JSP默认是以多线程方式执行的,这是JSP与ASP,PHP,PERL等脚本语言不一样的地方,也是它的优势之一,但如果不注意多线程中的同步问题,会使所写的JSP程序有难以发现的错误。
JSP的中存在的多线程问题:
当客户端第一次请求某一个JSP文件时,服务端把该JSP编译成一个CLASS文件,并创 ...
谈谈java的多线程
- 博客分类:
- 技术
程序、进程和线程:
程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的产生、存在和消亡的过程,也是一个动态的概念。每个进程都有一段专用的内存区域,而线程间可以共享相同的内存区域(包括代码和数据),并利用这些共享单元来实现数据交换、实时通信与必要的同步操作。
每个Java程序都有一个默认的主线程。Java程序总是从主类的main方法开始执行。当JVM加载代码,发现main方法后就启动一个线程, ...
1. 类的静态变量在内存中只有一个。静态变量位于方法区,被类的所有实例共享。静态变量的生命周期取决于类的生命周期(即类何时被加载和卸载)。
2. 类的每个实例都有相应的实例变量。实例变量位于堆区中。实例变量的生命周期取决于实例的生命周期(即实例何时被创建及销毁)。
3. 假如成员变量(包括静态变量和实例变量)是引用变量,那么当该成员变量结束生命周期时,并不意味着它所引用的对象也一定结束生命周期。变量的生命周期
和对象的生命周期是两个不同的概念。
4. 局部变量位于栈区,其生命周期取决于所属的方法何时被调用及结束调用。
总结一下:
局部变量位于栈区,静态变量位于 ...
servlet 概要和相关技术总结
- 博客分类:
- 技术
view plainprint?
servlet文档:
1.服务器如何调用servlet的?
servlet是运行在服务器的程序,当客机请求服务器的时候,服务器servlet会调用service方法,它会自动判断如果它是get方式提交,那么 就调用doget()方法如果是post提交就调用dopost()方法.我们只需要重写doget()跟dopost()方法即可!
2.servlet与生命周期相关的方法何时被执行:
1.任何从客户端发过来的请求,会导致service方法会被执行
2.当servlet被创建出来时,初始 ...
tomcate 5.5.26 源码分析思考(转)
- 博客分类:
- 技术
本文从源代码入手,分析Tomcat的启动过程,共两篇文章。这是第一篇。
main方法
第一阶段
第二阶段
第三阶段
启动参数的区别
一个Bug
configtest启动参数
一般,我们直接运行startup.sh 来 启动Tomcat 。最终执行的命令是:
view sourceprint?1 java [options] org.apache.catalina.startup.Bootstrap start
options是JVM启动参数,这里忽略。
main方法
可见,Tomcat 的启动类是org.apache.catalina.startup.Bootstrap ...
oracle经典sql面试
- 博客分类:
- 技术
一个学校表,school,列class 班级,name 学生姓名,sex 性别,男为'M',女为'F',一个学校表很多的班级,查询出男生,女生数量相同的班级。
好久不搞sql,几乎都忘光了,特此纪念,
select tem.class from(
select class,
(select count(sex)
from schools s1
where s1.class = s.class
and s1.sex = 'M') AS MCOUNT,
(select ...
JVM结构分为以下五个主要部分:
一组指令集,一组寄存器,一个栈,一个无用单元收集堆,一个方法区域。
Java跨平台就是JVM对java代码进行了字节编码,和平台无关性,直接底层和机器进行交互。
========================
操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境.
1.创建JVM装载环境和配置
2.装载JVM.dll
3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例
4.调用JNIEnv实例装载并处理class类。
一.JVM装入环境,JVM提供的方式是操作系统的动态连接文件.既然是文件那 ...
struts2基本原理
- 博客分类:
- 技术
Struts 2 的整体结构可以参考官方结构,在此省略。基本原理如下:
一个请求在Struts2框架中的处理大概分为以下几个步骤
1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求
2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4 如果ActionMa ...
多线程thread,runnalble区别和联系
- 博客分类:
- 技术
[/b] 前端时间碰到了单例模式的问题,涉及到多线程的问题,在此进行一次基本的温习,单例模式就是程序应用共用一个对象,节省了内存的资源,刚才看了一个同学的jdk有关的并发包的例子,包括控制多线程的并发调度、同步、交互、交换、协作等等,感受良多,线程不单单有竞争也有协作的关系,在此复习下基本的知识,
[b]在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口; Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的
run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限 ...
安装后MYSQL5后,发现启动出错,有时启动正常,但加接时马上出错。
出错代码:1067
解决办法如下:
1.删除%windows%/my.ini
2.删除其它地方的my.ini
3.在mysql安装目录下把my-small.ini复制为my.ini
4.在my.ini最后一行插入:
CODE:
[mysqld]
#设置basedir指向mysql的安装路径
basedir=C:\mysql-5.1.11-beta-win32
datadir=C:\mysql-5.1.11-beta-win32\data
5.重新启动。。。
===================
注:C:\my ...