`
wangxuliangboy
  • 浏览: 211067 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
阅读更多

Cron表达式的配置()开始时间:2008-12-29,结束时间:2009-01-10在这区间的每天晚上的23时59分59秒执行:

String cronExpression = "59 59 23 * * *";  
Trigger trigger = new CronTrigger(name, group, cronExpression);  
java.util.Calendar startTime = java.util.Calendar.getInstance();  
startTime.set(2008, 11, 29);  
java.util.Calendar endTime = java.util.Calendar.getInstance();  
endTime.set(2009, 0, 10);  
trigger.setStartTime(startTime.getTime());  
trigger.setEndTime(endTime.getTime());

 


JSP中实现在某页面停留若干秒后,自动重定向到另一页面:
<meta http-equiv="refresh" content="300; url=target.jsp">
通过setHeader来实现:
String content=stayTime+";URL="+URL;
response.setHeader("REFRESH",content);

 

 


java的GZip解压问题:
BufferedReader gzipReader = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream

(fileName))));
            String tmp = null;
            while((tmp=gzipReader.readLine())!=null){
                System.out.println("文件行:"+tmp);
            }

 

 

Hibernate中数据类型:
自定义类型,继承org.hibernate.usertype.UserType类。存储格式可以自己定制,
比如逗号分隔。配置的时候指定用自己定义的类型,比如@Type(type = "com.XXX.StringArrayType")

 

怎么判断是浏览器访问页面?
览器会在发送request的时候,在head部分加一些东西,比如浏览器版本和操作系统版本(User-Agent),
如果是是用手机,还可能有手机号。所以如果你用比如socket之类的方式可能就忽略了这些内容,
如果server端验证这些信息,自然就无法访问了。
在servlet中request.getHeader("User-Agent")可以得到用户的浏览器与操作系统的信息

 

 

 

httpclient怎么才可以不遵守robots.txt:
  HttpClient httpClient = new HttpClient();
  //创建GET方法的实例
  GetMethod getMethod = new GetMethod("http://www.dianping.com");
  //robots.txt是根据User-Agent来判断哪些可以访问,我这里随便设了一个值,就可以获取到页面了
  getMethod.setRequestHeader( "User-Agent", "fake");
  //使用系统提供的默认的恢复策略 \\
 


  字符串生僻字乱码问题:
 使用Character对象控制字符: 16位以外的字符, 需要你做特殊判断。
 char 并不是一个完整的UNICODE实现。 如果要使用Surrogate区域的字符,
 也就是16位以上的字符, 需要用2个char来表示你的一个Surrogate字符, 你要这么写程序:
if(Character.isSurrogatePair(c1, c2)){
  int i = Character.toCodePoint(c1, c2);
  String s = new String(Character.toChars(i));
  system.out.println(s);
}

firefox的不缓存:
response.setHeader("Pragma","No-cache");         
response.setHeader("Cache-Control","no-cache");  
response.setHeader("Cache-Control", "no-store");  
response.setDateHeader("Expires",0); 

 

 

 

HttpURLConnection SetRequestMethod("GET")没有Get请求,服务器端处理都是dopost处理的:
httpurlconnection.setDoOutput(true); 就把请求改变为post请求了,请求头的输出并不需要通过httpurlconnection的输出流,

只要设置就行,httpurlconnection会在你需要得到服务器响应的时候使用socket连接web服务器,将请求头输出到web服务器,所以

这样写就可以了:
public static void doPost() {
try {
url = new URL("http://www.XXXX.com/blogs/list");

httpurlconnection = (HttpURLConnection) url.openConnection();
//httpurlconnection.setDoOutput(true); 这一句不要
//httpurlconnection.setRequestMethod("GET"); 这一句不要,缺省就是get
// httpurlconnection.getOutputStream().write(getFileString().getBytes());

 


enum类型时,我们应该注意到enum类型有如下的一些特征。

1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。

2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义变量一样定义其它

任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。
3.Enum默认实现了java.lang.Comparable接口。

4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.

5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自

己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。
6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。

7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里

Color.Red.ordinal()返回0。
 


防止SQL注入的正则表达式:(不能有',;,or,OR,AND) %27 ',%3B ;
2.1、检测SQL meta-characters的正则表达式 /(\%27)|(\')|(\-\-)|(\%23)|(#)/ix
2.2、修正检测SQL meta-characters的正则表达式 /((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-)|(\%3B)|(:))/i
2.3、典型的 SQL 注入攻击的正则表达式 /\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix
2.4、检测SQL注入,UNION查询关键字的正则表达式 /((\%27)|(\'))union/ix(\%27)|(\') - 单

 

JSP是使用如下的语法格式来创建cookie的:   
Cookie cookie_name =new Cookie("Parameter","Value");   例如:
Cookie newCookie =new Cookie("username","wolf");
response.addCookie(newCookie);   
解释:JSP是调用Cookie对象相应的构造函数Cookie(name,value)用合适的名字和值来创建Cookie,然后 Cookie可以通过

HttpServletResponse的addCookie方法加入到Set-Cookie应答头

 


如果在同一个窗口来调用Servlet,这时客户端已经有了一个临时Cookie,就是JSESSIONID,因此,会将这个Cookie放到HTTP头的

Cookie字段中发送给服务端。服务端在收到这个HTTP请求时就可以从Cookie中得到JSESSIONID的值.但是在不同的窗口打开Servlet

时,将会得到不同的SESSION,我们可以使用永久Cookie将这个Session ID保存在Cookie文件中,这样就算在新的IE窗口,也可以共

享Session对象
Cookie cookie = new Cookie("JSESSIONID", session.getId());  
cookie.setMaxAge(3600);  
response.addCookie(cookie);  Cookie对象将JSESSIONID写入了Cookie文件,并使用setMaxAge方法将Cookie超时时间设为3600秒

 

 

 

一个类实现了 Serializable接口, 我们就可以把它往内存地写再从内存里读出而"组装"成一个跟原来一模一样的对象. 不过当序列

化遇到单例时,这里边就有了个问题: 从内存读出而组装的对象破坏了单例的规则. 单例是要求一个JVM中只有一个类对象的, 而现

在通过反序列化,一个新的对象克隆了出来.
解决方法:
1.在单例类中覆写private Object readResolve() throws ObjectStreamException { 直接返回单例对象。这样当JVM从内存中反序

列化地"组装"一个新对象时,就会自动调用这个 readResolve方法来返回我们指定好的对象
2。调用ObjectInputStream的readUnshared方法 从 ObjectInputStream 读取“非共享”对象。

 

 

 

java 启动时设置代理:

普通代理:

System.getProperties().put("proxySet","true");    //是否通过代理进行连接

System.getProperties().put("proxyHost","192.168.0.26");  //代理服务器

System.getProperties().put("proxyPort","808"); //代理监听的端口

Socket4 代理:

   

 

 

代理在授权用户访问因特网之前,要求用户输入用户名和口令:

URLConnectionconnection=url.openConnection();
Stringpassword="username:password";
StringencodedPassword=base64Encode(password);
connection.setRequestProperty("Proxy-Authorization",encodedPassword);

借助用户名和口令进行认证的方法不起作用。应将"Basic"置于认证字符串的开头;例如:
StringencodedPassword=base64Encode(password);
应该是:
StringencodedPassword="Basic"+base64Encode(password);

 

FTP代理

System.getProperties()..put("ftpProxySet","true");
System.getProperties()..put("ftpProxyHost","proxy-host-name");
System.getProperties()..put("ftpProxyPort","85");

 

System.getProperties().put("socksProxySet","true");   

System.getProperties().put("socksProxyHost","192.168.0.26");  

System.getProperties().put("socksProxyPort","808");

 

 

 

CAS单点登陆:

CAS用来标志用户的token是存在它自己的域名下的,不是存在web应用的域名下的.CAS判断用户登录由agent决定,agent验证用户信息有两种处理.
1.如果这个用户是以前没登录过的,也就是说这个web应用的域名下没有一个agent颁发的sessionid(在cookie里)的话,那么它会跳转到CAS server的登录界面(这里由CAS server决定是否显示登录界面,还是直接就跳转回来,也就是不是每次都要求输入密码登录的).
2.CAS的登录界面会有两种处理.如果以前没登录过,也就是在CAS server自己的域名下,没有用户的token的话,就要求登录.如果有token的话,就返回一个ticket(也就是不显示登录界面直接重定向返回了).
然后接第一步里面,agent收到ticket以后就提交给CAS server验证,并取得返回信息(是个xml,cas的协议规定的,也可以用saml之类的,这个地方可以取得除了用户姓名以外的信息,这样就可以做同步了,权限的问题可以这么解决).然后agent就保存此时的session,把sessionid放到该web应用域名下的cookie里.
以上逻辑说明了,标志用户身份的token在CAS server的域名下,每个web应用不保存用户身份.因此跨域是绝对没问题的.只是single sign off就需要CAS server的配合了,要把那个token删掉.
不过如果标志身份的token不存在,而sessionid存在,那还是被认为是登录的,只不过是在等待那个session timeout而已.

 

apache更改日志级别:

打开conf/httpd.conf找到LogLevel就可以更改日志等级啦.

Level  Description  Example 
emerg  紧急 - 系统无法使用。 "Child cannot open lock file. Exiting"
alert  必须立即采取措施。 "getpwuid: couldn’t determine user name from uid"
crit  致命情况。 "socket: Failed to get a socket, exiting child"
error  错误情况。 "Premature end of script headers"
warn  警告情况。 "child process 1234 did not exit, sending another SIGHUP"
notice  一般重要情况。 "httpd: caught SIGBUS, attempting to dump core in …"
info  普通信息。 "Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers

 

分享到:
评论

相关推荐

    java计算器,带历史记录功能

    在Java编程领域,创建一个具有历史记录功能的计算器是一项常见的练习任务,旨在提升开发者对GUI(图形用户界面)设计、事件处理以及数据存储的理解。在这个项目中,我们看到的"java计算器,带历史记录功能"显然包含...

    学习Java过程中记录的一些代码

    这个压缩包"学习Java过程中记录的一些代码"包含了多个关键领域的示例,对于初学者和有经验的开发者来说都是宝贵的资源。以下是对这些主题的详细说明: 1. **Stream API**:Java 8引入的Stream API提供了一种新的...

    java日常记录

    这种记录可能包括遇到的问题、解决方案、代码片段、技术分享等内容,旨在积累经验,提高技能。 【描述】:“java日常记录20170621”具体指的是一天的记录,即2017年6月21日这一天,作者在Java学习或工作中所遇到的...

    Java日志记录的5条规则Java开发Java经验技巧共5

    在Java开发过程中,日志记录是一项至关重要的任务,它能够帮助开发者追踪程序运行状态、调试错误、优化性能以及记录系统事件。以下就是基于标题和描述所提到的“Java日志记录的5条规则”进行的详细阐述: 1. **选择...

    java——1.rar_Java实习报告_java实习_java实习记录

    Java实习报告是对实习生在Java开发领域实践经历的总结与反思,是学习与工作经验的重要记录。在实习期间,实习生通常会参与实际项目,了解并掌握Java编程语言的核心概念、设计模式以及开发流程。以下是对"实验一"的...

    java统计高并发首页访问量,记录客户登录信息

    在Java开发中,统计高并发环境下首页访问量并记录客户登录信息是一项常见的需求,这涉及到系统性能优化、数据持久化以及并发控制等多个方面。在这个项目中,开发框架选择了Spring,这是一个广泛使用的Java企业级应用...

    java工程师项目经验简历范文.pdf

    【Java工程师项目经验】在Java工程师的简历中,通常会包含以下几个关键知识点: 1. **CoreJava编程**:这是Java的基础,包括面向对象编程、集合框架、多线程、异常处理、I/O流等,良好的代码规范和注释习惯是专业...

    java项目经验案列

    11. **日志管理**:日志记录系统运行状态,便于问题排查。Log4j、SLF4J和Logback是常用的日志框架。 12. **异常处理**:统一的全局异常处理机制,如使用Spring的@ControllerAdvice,可以优雅地处理系统出现的异常,...

    关于Java面试的一些纪要

    以下是一些在Java面试中常见的知识点,这些内容可能在"Java面试宝典2010版.doc"中有所涵盖。 1. **Java基础**:面试通常从Java的基础知识开始,如数据类型、变量、运算符、流程控制语句(if-else, switch-case, for...

    java开发三年项目经验心得

    ### Java开发三年项目经验心得分析 #### 一、项目经验概览 在这篇文章中,作者回顾了自己在Java开发领域三年的工作经历,期间参与了三个不同的项目,从中获得了丰富的实战经验和技术积累。这三个项目分别是涉密...

    Java学习记录.rar

    【Java学习记录】是本次压缩包文件的主题,它暗示了我们即将探讨的是关于Java编程语言的学习过程和经验总结。在编程领域,Java以其跨平台、面向对象和强大的库支持而广受欢迎,是初学者和专业开发者的重要选择。下面...

    Java项目经验,里面有六个项目经验

    ### Java项目经验解析 #### 项目一:NetStore购物系统 **项目简介**:NetStore购物系统是一款基于Java技术栈构建的电子商务平台。系统主要分为前端用户界面与后台管理两个部分,采用MVC架构模式进行设计,具体实现...

    通用java日志记录开发包,短小而精悍,适合各种大小项目

    本人有多年java项目开发经验,在大大小小java项目中,总结写了这个通用日志信息记录开发包,愿结识各路好友。 压缩包,包涵使用实例,使用中如有疑问,可以QQ:120849208 以下是配置文件内容: #日志文件所在...

    Java记录文档

    以下是一些关于Java开发中的常见问题和相应的处理方法。 首先,我们遇到了一个与Struts2框架相关的文件下载问题。当用户尝试下载文件并中途取消时,后台可能会出现错误。这是因为Struts2框架在处理文件上传和下载时...

    Log4j2介绍Java开发Java经验技巧共5页.pdf

    这份"Log4j2介绍Java开发Java经验技巧共5页.pdf"的文档很可能详细介绍了Log4j2的基础概念、配置方式以及在Java开发中的实践技巧。 首先,Log4j2的核心概念包括Logger、Appender、Layout和Filter。Logger是记录日志...

    java-study 是本人学习Java过程中记录的一些代码!从Java基础的数据类型、jdk1.8的Lambda、10.zip

    在本压缩包“java-study”中,作者记录了其学习Java编程语言的过程,主要涵盖了三个核心主题:Java基础数据类型、JDK 1.8的Lambda表达式以及可能涉及的其他进阶内容。让我们逐一深入探讨这些知识点。 首先,Java的...

    《JAVA课程设计》--课程《算法设计与分析》(第3版)java实现,记录学习过程…….zip

    本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA职业规划、技术提升的可与我联系,交个朋友~ 本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做...

    java的一些个人小工具包

    这个"java的一些个人小工具包"可能包含了一些开发者为了提高工作效率,自己编写的实用类库或函数集合。这些工具包通常包括各种通用功能,帮助开发者简化常见的编程任务。 首先,我们来了解一下Java工具包的一般构成...

    大一的java学习记录

    总之,“大一的java学习记录”涵盖了从入门到进阶的完整Java学习路径,无论你是初学者还是有一定经验的开发者,都能从中受益。通过系统学习,你将能够熟练运用Java,为自己的IT职业生涯打下坚实的基础。

    JAVA编写的预警系统

    标题中的“JAVA编写的预警系统”表明我们讨论的是一个使用Java编程语言...通过深入研究这个JAVA编写的预警系统,开发者不仅可以提升Java编程技能,还能学习到系统设计和监控实践,为自己的项目或职业发展积累宝贵经验。

Global site tag (gtag.js) - Google Analytics