下面产生一个自签证书。安装完J2SDK(这里用的是J2SDK1.4)后,在J2SDK安装目录的bin目录下,有一个keytool的可执行程序。利用keytool产生自签证书的步骤如下:
10年的潜江网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整潜江建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“潜江网站设计”,“潜江网站推广”以来,每个客户项目都认真落实执行。
第一步,用-genkey命令选项,产生公私密钥对。在控制台界面输入:keytool -genkey -alias testkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA。这里的-alias表示使用这对公私密钥产生新的keystore入口的别名(keystore是用来存放管理密钥对和证书链的,缺省位置是在使用者主目录下,以.keystore为名的隐藏文件,当然也可指定某个路径存放.keystore文件);-keyalg是产生公私钥对所用的敏橘罩算法,这里是RSA;-keysize定义密钥的长度;-sigalg是签伍饥名桥闹算法,选择MD5withRSA,即用RSA签名,然后用MD5哈希算法摘要。接下来,系统会提示进行一些输入:
输入keystore密码: abc123
您的名字与姓氏是什么?
[Unknown]: Li
您的组织单位名称是什么?
nbs
问题的其他解决办法参考 :
;t=JAVA+
public BufferedImage replaceWithWhiteColor(BufferedImage bi) {
int[] rgb = new int[3];
int width = bi.getWidth();
int height = bi.getHeight();
int minx = bi.getMinX();
int miny = bi.getMinY();
/**
* 遍历图片的像素,为处理图片上的杂色,所以要把指袭如雀定像素上的颜色换成目标白色 用二层循环遍历长和宽上的每个像素
*/
int hitCount = 0;
for (int i = minx; i width-1; i++) {
for (int j = miny; j height; j++) {
/**
* 得到指定像素(i,j)上的RGB值,
*/
int pixel = bi.getRGB(i, j);
int pixelNext = bi.getRGB(i+1, j);
/**
* 分别进行位操作得到 r g b上的值橡乎
*/
rgb[0] = (pixel 0xff0000) 16;
rgb[1] = (pixel 0xff00) 8;
rgb[2] = (pixel 0xff);
/**
* 进行换色操作,我这里是要换成白底,那么就判断图片中rgb值是否在范围内的像素
*/
//经过不断尝试,RGB数值相互间相差15以内的都基本上是灰色,
//对以身份证来说特别是介于73到78之间,还有大于100的部分RGB值都是干扰色,将它们一次拍早性转变成白色
if ((Math.abs(rgb[0] - rgb[1]) 15)
(Math.abs(rgb[0] - rgb[2]) 15)
(Math.abs(rgb[1] - rgb[2]) 15)
(((rgb[0] 73) (rgb[0] 78))||(rgb[0] 100))) {
//进行换色操作,0xffffff是白色
bi.setRGB(i, j, 0xffffff);
}
}
}
我当初用struts1和hibernate做了个简单的!主要的逻辑代码在下面!数据库里号码对应的城市在网上可念局以查的到
package dao;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Expression;
import entity.Shenfenzhen;
public class IdDao {
private static Configuration configuration = new Configuration().configure() ;
private static SessionFactory sessionFactory =configuration.buildSessionFactory();
private static Session session = null;
public Info query(String s){
Info info = null;
StringBuffer stringBuffer = new StringBuffer(s);
if(s.length()==18){
String end = stringBuffer.substring(17);
//System.out.println(end);
if(!end.matches("\\d||x")){
return null;
}
}
else if(s.length()==15){
stringBuffer.insert(6, "19");
stringBuffer.append("3");
}
int i = Integer.parseInt(stringBuffer.substring(0, 6));
//System.out.println(i);
session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(Shenfenzhen.class);
criteria.add(Expression.eq("num", i));
ListShenfenzhen list = criteria.list();
String address = null;
try {
address = list.get(0).getAddress();
}catch (Exception e) {
return null;
}
i = Integer.parseInt(stringBuffer.substring(16,17));
String sex = null;
if(i%2==0){
sex = "女";
}else{
sex = "男";
}
//System.out.println(i);
stringBuffer = new StringBuffer(stringBuffer.substring(6, 14));
// stringBuffer.insert(4, "-");
// stringBuffer.insert(7, "-"凯纳);
//System.out.println(stringBuffer);
String ss = stringBuffer.toString();
SimpleDateFormat dateFormat = new SimpleDateFormat("仔孙让yyyyMMdd");
String brithday="";
int year=0;
int month =0;
int day =0;
try {
Date date = dateFormat.parse(ss);
//System.out.println(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH)+1;
day = calendar.get(Calendar.DAY_OF_MONTH);
brithday = (String)(year + "年" + month + "月" + day + "日");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
info = new Info(address, brithday, sex);
Calendar c = Calendar.getInstance();
int nowYear = c.get(Calendar.YEAR);
int nowMonth = c.get(Calendar.MONTH);
int nowDay = c.get(Calendar.DAY_OF_MONTH);
if(nowYearyear){
info = null;
}else if(nowYear ==year nowMonthmonth ){
info = null;
}else if(nowYear == year nowMonth==month nowDayday){
info = null;
}
closeSession(session);
return info;
}
// public static void main(String[] args){
// IdDao dao = new IdDao();
// dao.query("342522998711224513");
// System.out.println("x".matches("\\d||x"));
// }
private void closeSession(Session session){
if(session !=null){
session.close();
}
}
}
首蠢信先 来看看效果 如下图
带激轮
代码如下
PrintTest java
import java awt BasicStroke;
铅穗import java awt Color;
import java awt Font;
import java awt Graphics;
import java awt Graphics D;
import java awt print Book;
import java awt print PageFormat;
import java awt print Paper;
import java awt print Printable;
import java awt print PrinterException;
import java awt print PrinterJob;
import java text SimpleDateFormat;
import java util Date;
import snjp model RentDetail;
import snjp parameter RentRecordParameter;
public class PrintTest implements Printable
{
private String roomID;
private Date printDate;
private Integer rentType;
private Float waterFee;
private Float electricityFee;
private Float rent;
private String remark;
private static int RECEIPT_NO = ;
public PrintTest()
{
}
public PrintTest printTest;
public PrintTest(RentRecordParameter prentRecord RentDetail prentDetail)
{
this roomID = prentRecord getRoomId()+ 房间 ;
this printDate = prentRecord getRegisterDate();
this rentType = prentRecord getRentType();
this waterFee = prentDetail getWaterBill();
this electricityFee = prentDetail getElectricityBill();
this rent = prentDetail getRent();
this remark = prentDetail getRemark();
}
/** */
/**
* @param Graphic指明打印的图形环境
* @param PageFormat指明打印页格式(页面大小以点为计量单位 点为 英才的 / 英寸为 毫米 A 纸大致为 × 点)
* @param pageIndex指明页号
**/
public int print(Graphics graphics PageFormat pf int pageIndex)
throws PrinterException
{
//print string
String receiptTitle = 收款收据 ;
String content = 今收到 ;
String feeItem = null;
Float rentTotal = f;
String content = 总计人民币(大写) ;
//收款的内容(根据租赁类型 只有 房租 房租 水费 电费 两种值)
switch(this rentType)
{
case :
feeItem = 房租 押金 ;
rentTotal=this rent;
break;
case :
feeItem = 房租 押金 水费 电费 ;
rentTotal=this rent+this electricityFee+this waterFee;
break;
default:
feeItem = 未知收费项目 ;
}
//转换成Graphics D
Graphics D graphics D = (Graphics D) graphics;
//设置打印颜色为黑色
graphics D setColor(Color black);
//打印起点坐标x=
double x = pf getImageableX();
double y = pf getImageableY();
System out println( 打印起点坐标值是{ +x+ +y+ } );
switch (pageIndex)
{
case :
//设置打印字体(字体名称 样式和点大小)(字体名称可以是物理或者逻辑名称)
//Java平台所定义的五种字体系列 Serif SansSerif Monospaced Dialog 和 DialogInput
Font font = new Font( 新宋体 Font TRUETYPE_FONT );
graphics D setFont(font);//设置字体
BasicStroke basicStroke=new BasicStroke( f);
float[] dash = { f };
//设置打印线的属性
// 线宽; ; ; 空白的宽度; 虚线的宽度; 偏移量
// graphics D setStroke(new BasicStroke( f
// BasicStroke CAP_BUTT BasicStroke JOIN_MITER
// f dash f));
//graphics D setStroke(new BasicStroke( f));
graphics D setStroke(basicStroke);//设置线宽
float height = font getSize D();//字体高度
System out println( 字体高度是 +height);
//绘制收据标题
graphics D drawString(receiptTitle (float) y + * height);
//绘制收据编号
String receiptNo = String valueOf(RECEIPT_NO);
graphics D drawString( No : +GlobalMethod get String(receiptNo ) (float)x* (float) y + * height);
//绘制打印时间
SimpleDateFormat myDateFormat = new SimpleDateFormat( yyyy年MM月dd日 );
graphics D drawString(myDateFormat format(printDate) (float)x* (float) y + * height);
//绘制收据标题下面的第一条横线
graphics D drawLine(
(int) (y + * height+ )
(int) (y + * height+ )
);
//绘制收据标题下面的第二条横线
graphics D drawLine(
(int) (y + * height+ )
(int) (y + * height+ )
);
//正文 ——今收到
graphics D drawString(content (float) x* (float) y + * height);
//收费项目名称
graphics D drawString(this roomID+feeItem (float) x* (float) y + * height);
//绘制正文 下划线
graphics D drawLine(
(int)x*
(int) (y + * height+ )
(int)x+
(int) (y + * height+ )
);
//人民币(大写)
graphics D drawString(content +Money NumToRMBStr(rentTotal) (float) x* (float) y + * height);
//绘制人民币(大写)下划线
graphics D drawLine(
(int)x*
(int) (y + * height+ )
(int)x+
(int) (y + * height+ )
);
//(小写)
graphics D drawString( (小写) +rentTotal+ 元 (float) x* (float) y + * height);
//绘制(小写)下划线
graphics D drawLine(
(int)x*
(int) (y + * height+ )
(int)x+
(int) (y + * height+ )
);
//附注
graphics D drawString( 附注: +this remark (float) x* (float) y + * height);
//绘制附注下划线
graphics D drawLine(
(int)x* +
(int) (y + * height+ )
(int)x+
(int) (y + * height+ )
);
// 签字(收款人)
graphics D drawString( 签字(收款人) (float) x* + (float) y + * height);
//签字(收款人)下划线
graphics D drawLine(
(int)x*
(int) (y + * height+ )
(int)x+
(int) (y + * height+ )
);
return PAGE_EXISTS;
default:
RECEIPT_NO=RECEIPT_NO ;
return NO_SUCH_PAGE;
}
}
//方法调用
public void printReceipt(PrintTest printTest){
//通俗理解就是书 文档
Book book = new Book();
//设置成竖打
PageFormat pf = new PageFormat();
pf setOrientation(PageFormat PORTRAIT);
//通过Paper设置页面的空白边距和可打印区域 必须与实际打印纸张大小相符
Paper p = new Paper();
p setSize( );//纸张大小
p setImageableArea( );//A ( X )设置打印区域 其实 应该是 因为A 纸的默认X Y边距是
pf setPaper(p);
//把 PageFormat 和 Printable 添加到书中 组成一个页面
book append(printTest pf);
//获取打印服务对象
PrinterJob job = PrinterJob getPrinterJob();
//设置打印类
job setPageable(book);
try
{
//可以用printDialog显示打印对话框 在用户确认后打印 也可以直接打印
// boolean isShowing=job printDialog();
// if(isShowing)
// {
// System out println(this printDate+ ************* );
RECEIPT_NO=RECEIPT_NO+ ;
job print();
// }
}
catch (PrinterException e)
{
e printStackTrace();
}
}
public static void main(String[] args)
{
// 通俗理解就是书 文档
Book book = new Book();
// 设置成竖打
PageFormat pf = new PageFormat();
pf setOrientation(PageFormat PORTRAIT);
// 通过Paper设置页面的空白边距和可打印区域 必须与实际打印纸张大小相符
Paper p = new Paper();
p setSize( );//纸张大小
p setImageableArea( );//A ( X )设置打印区域 其实 应该是 因为A 纸的默认X Y边距是
pf setPaper(p);
// 把 PageFormat 和 Printable 添加到书中 组成一个页面
book append(new PrintTest() pf);
//获取打印服务对象
PrinterJob job = PrinterJob getPrinterJob();
// 设置打印类
job setPageable(book);
try
{
//可以用printDialog显示打印对话框 在用户确认后打印 也可以直接打印
//boolean a=job printDialog();
//if(a)
//{
job print();
//}
}
catch (PrinterException e)
{
e printStackTrace();
}
}
lishixinzhi/Article/program/Java/hx/201311/25778