(.)\\1+ 在java中的接口正则含义是什么

“:p”是什么字符,表示笑脸吗?经常在聊天中看到,是什么意思啊?
[问题点数:22分,结帖人SCAUSCNU]
本版专家分:559
结帖率 98.9%
CSDN今日推荐
本版专家分:55078
本版专家分:304
本版专家分:398479
2014年 荣获名人称号2013年 荣获名人称号2012年 荣获名人称号
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第四
本版专家分:549
本版专家分:559
本版专家分:317
2012年1月 荣获微软MVP称号2011年1月 荣获微软MVP称号
2007年9月 VB大版内专家分月排行榜第二
2008年3月 VB大版内专家分月排行榜第三2007年8月 VB大版内专家分月排行榜第三
本版专家分:398479
2014年 荣获名人称号2013年 荣获名人称号2012年 荣获名人称号
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第四
本版专家分:9117
本版专家分:0
本版专家分:559
本版专家分:559
本版专家分:443
本版专家分:13
本版专家分:52
本版专家分:23
本版专家分:4776
匿名用户不能发表回复!|
其他相关推荐JDK中基于链表的非阻塞无界队列ConcurrentLinkedQueue原理剖析,ConcurrentLinkedQueue内部是如何使用CAS非阻塞算法来保证多线程下入队出队操作的线程安全?ConcurrentLinkedQueue是线程安全的无界非阻塞队列,其底层数据结构是使用单向链表实现,入队和出队操作是使用我们经常提到的CAS来保证线程安全的。我们首先看一下ConcurrentLinke...
JDK 中基于链表的非阻塞无界队列 ConcurrentLinkedQueue 原理剖析,ConcurrentLinkedQueue 内部是如何使用 CAS 非阻塞算法来保证多线程下入队出队操作的线程安全?ConcurrentLinkedQueue是线程安全的无界非阻塞队列,其底层数据结构是使用单向链表实现,入队和出队操作是使用我们经常提到的CAS来保证线程安全的。我们首先看一下ConcurrentLinkedQueue的类图结构先,好有一个内部逻辑有一个大概的印象,如下图所示:可以清楚的看到ConcurrentLinkedQueue内部的队列是使用单向链表方式实现,类中两个volatile 类型的Node 节点分别用来存放队列的首位节点。首先我们先来看一下ConcurrentLinkedQueue的构造函数,如下:public ConcurrentLinkedQueue() {
head = tail = new Node&E&(null);}通过无参构造函数可知默认头尾节点都是指向 item 为 null 的哨兵节点。Node节点内部则维护一个volatile 修饰的变量item 用来存放节点的值,next用来存放链表的下一个节点,从而链接为一个单向无界链表,这就是单向无界的根本原因。如下图:接下来看ConcurrentLinkedQueue 主要关注入队,出队,获取队列元素的方法的源码,如下所示:1.首先看入队方法offer,offer 操作是在队列末尾添加一个元素,如果传递的参数是 null 则抛出 NPE 异常,否者由于 ConcurrentLinkedQueue 是无界队列该方法一直会返回 true。另外由于使用 CAS 无阻塞算法,该方法不会阻塞调用线程,其源码如下:public boolean offer(E e) {
//(1)e为null则抛出空指针异常
checkNotNull(e);
//(2)构造Node节点
final Node&E& newNode = new Node&E&(e);
//(3)从尾节点进行插入
for (Node&E& t = tail, p =;) {
Node&E& q = p.
//(4)如果q==null说明p是尾节点,则执行插入
if (q == null) {
//(5)使用CAS设置p节点的next节点
if (p.casNext(null, newNode)) {
//(6)cas成功,则说明新增节点已经被放入链表,然后设置当前尾节点
if (p != t)
casTail(t, newNode);
// Failure is OK.
return true;
else if (p == q)//(7)
//多线程操作时候,由于poll操作移除元素后有可能会把head变为自引用,然后head的next变为新head,所以这里需要
//重新找新的head,因为新的head后面的节点才是正常的节点。
p = (t != (t = tail)) ? t :
//(8) 寻找尾节点
p = (p != t && t != (t = tail)) ? t :
}}类图结构时候谈到构造队列时候参构造函数创建了一个 item 为 null 的哨兵节点,并且 head 和 tail 都是指向这个节点,下面通过图形结合来讲解下 offer 操作的代码实现。  1.首先看一下,当一个线程调用offer(item)时候情况:首先代码(1)对传参判断空检查,如果为null 则抛出空指针异常,然后代码(2)则使用item作为构造函数参数创建一个新的节点,代码(3)从队列尾部节点开始循环,目的是从队列尾部添加元素。如下图:上图是执行代码(4)时候队列的情况,这时候节点 p , t ,head ,tail 同时指向了item为null的哨兵节点,由于哨兵节点的next节点为null,所以这里q指向也是null。代码(4)发现q==null 则执行代码(5),通过CAS原子操作判断p 节点的next节点是否为null,如果为null 则使用节点newNode替换p 的next节点,然后执行代码(6),由于 p == t ,所以没有设置尾部节点,然后退出offer方法,这时候队列的状态图如下:上面讲解的是一个线程调用offer方法的情况下,如果多个线程同时调用,就会存在多个线程同时执行到代码(5),假设线程A调用offer(item1),线程B调用offer(item2),线程 A 和线程B同时到 p.casNext(null,newNode)。而CAS的比较并设置操作是原子性的,假设线程A先执行了比较设置操作,则发现当前P的next节点确实是null ,则会原子性更新next节点为newNode,这时候线程B 也会判断p 的next节点是否为null,结果发现不是null,(因为线程 A 已经设置了 p 的 next 为 newNode)则会跳到代码(3),然后执行到代码(4)的时候的队列分布图如下:根据这个状态图可知线程B会执行代码(8),然后q 赋值给了p,这个时候状态图为:然后线程B再次跳转到代码(3)执行,当执行到代码(4)时候队列状态图为:由于这时候q == null ,所以线程B 会执行步骤(5),通过CAS操作判断 当前p的next 节点是否为null ,不是则再次循环后尝试,是则使用newNode替换,假设CAS成功了,那么执行步骤(6),由于 p != t 所以设置tail节点为newNode ,然后退出offer方法。这时候队列的状态图为:到现在为止,offer代码在执行路径现在就差步骤(7)还没有执行过,其实这个要在执行poll操作才会出现的,这里先看一下执行poll操作后可能会存在的一种情况,如下图所示:下面分析下当队列处于这种状态调用offer添加元素代码执行到代码(4)的时候的队列状态图,如下:由于q节点不为空并且p==q 所以执行代码(7),因为 t == tail所以p 被赋值为head ,然后进入循环,循环后执行到代码(4)的时候的队列状态图,如下:由于 q ==null,所以执行代码(5),进行CAS操作,如果当前没有其他线程执行offer操作,则CAS操作会成功,p的next节点被设置为新增节点,然后执行代码(6),由于p != t 所以设置新节点为队列尾节点,现在队列状态图,如下:在这里的自引用的节点会被垃圾回收掉,可见offer操作里面关键步骤是代码(5)通过原子CAS操作来进行控制同时只有一个线程可以追加元素到队列末尾,进行cas竞争失败的线程,则会通过循环一次次尝试进行cas操作,知道cas成功才会返回,也就是通过使用无限循环里面不断进行CAS尝试方式来替代阻塞算法挂起调用线程,相比阻塞算法,这是使用CPU资源换取阻塞带来的开销。  2.poll操作,poll 操作是在队列头部获取并且移除一个元素,如果队列为空则返回 null,我们首先看改方法的源码,如下:public E poll() {
//(1) goto标记
restartFromHead:
//(2)无限循环
for (;;) {
for (Node&E& h = head, p = h,;) {
//(3)保存当前节点值
E item = p.
//(4)当前节点有值则cas变为null
if (item != null && p.casItem(item, null)) {
//(5)cas成功标志当前节点以及从链表中移除
if (p != h)
updateHead(h, ((q = p.next) != null) ? q : p);
//(6)当前队列为空则返回null
else if ((q = p.next) == null) {
updateHead(h, p);
return null;
//(7)自引用了,则重新找新的队列头节点
else if (p == q)
continue restartFromH
else//(8)
} }  final void updateHead(Node&E& h, Node&E& p) {
if (h != p && casHead(h, p))
h.lazySetNext(h);
}poll操作是从队头获取元素,所以代码(2)内层循环是从head节点开始迭代,代码(3)获取当前队头的节点,当队列一开始为空的时候队列状态为:由于head 节点指向的item 为null 的哨兵节点,所以会执行到代码(6),假设这个过程没有线程调用offer,则此时q等于null ,如下图:所以执行updateHead方法,由于h 等于 p所以没有设置头节点,poll方法直接返回null。假设执行到代码(6)的时候已经有其他线程调用了offer 方法成功添加了一个元素到队列,这时候q执行的是新增元素的节点,这时候队列状态图为:所以代码(
源文地址:https://www.guoxiongfei.cn/cntech/10882.html随笔分类 - JavaWeb
摘要: Hibernate主要支持两种查询方式:HQL查询和Criteria查询。前者应用较为广发,后者也只是调用封装好的接口。现在有一个问题,就是实现多表连接查询,且查询结果集不与任何一个实体类对应,怎么解决呢?举个例子:现在有两个表,一个users用户表, 一个goods商品表,每个用户可以有多个商品,而一个商品只能对应一个用户。users表中的字段:userId,userName,telephone,addressgoods表中的字段:goodsId,goodsName,userId现在要实现两表连接查询,查出每个用户所拥有的商品,并把该用户的信息和其商品信息显示出来。使用Hibernate反向
lihui_yy 阅读(8958) |
摘要: 最近一直在研究S2SH开发框架,把三部分分别看完之后开始整合,发现由于 hibernate 高版本已经又完善了好多功能,导致与之前跟 spring 整合的方法有些出入。先说一下与 hibernate3 整合的时候获取 Session 的办法吧。以检测用户名和密码是否正确为例,数据表是users,所以使用MyEclipse反向生成其所对应的类和.hbm.xml文件分别是Users.java和Users.hbm.xml。我是直接使用 MyEclipse 添加的两个框架,所以系统自动给生成了 applicationContext.xml 配置文件,关于 SessionFactory 的部分如下: 1
lihui_yy 阅读(15274) |
摘要: 数据库连接池技术的基本原理:由Web容器(如Tomcat)提供数据源对象,在程序中使用 JNDI 技术获得该对象。一般如果自己创建连接的话,用下面的代码获取数据源对象:Context context = new InitialContext();DataSource dataSource = (DataSource)context.lookup(&java://comp/env/jdbc/mydb&);Connection conn = dataSource.getConnection();这里mydb是要连接到的数据库名,一定要注意 java: 后面有双斜线,否则就会报出
lihui_yy 阅读(2969) |
摘要: struts2配置时,在web.xml中的配置如下:1 &filter&2 &filter-name&struts2&/filter-name&3 &filter-class&org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&/filter-class&4 &/filter&5 &filter-mapping&6 &filter-name&struts2&/filter-name&7 &url
lihui_yy 阅读(683) |
摘要: Struts2 的表单输入校验有多种方法。1.重写 ActionSupport 类的 validate() 方法。 将需要验证的逻辑写在该方法中,那么当执行该Action的时候会先执行该方法再执行execute()方法。但这个方法有一个缺陷,就是一个表单只能对应一个Action.2.重写 validateXxx 方法。 比如在 LoginAction 类中,我们想有验证login表单和regist表单的两个验证方法,则分别定义 validateLogin() 和 validateRegist() 方法,然后在配置 struts.xml 时指定 action=login 时执行 login(..
lihui_yy 阅读(1583) |
摘要: Struts2 相比 Struts1 而言,不用直接访问 Servlet API, 使得 Action 可以脱离 Web 容器进行测试。那么 Struts2 访问 Servlet API 有三种方式:1.使用 ActionContext 在程序中使用 ActionContext ac = ActionContext.getContext(); 获取到ActionContext的一个实例,然后使用ac.put(&key&, &value&);将信息返回给Web前端。但使用该方法需要在Action类中实现request参数的setter()和getter()
lihui_yy 阅读(2854) |
摘要: 用php的时候不小心在phpAdmain里把root的密码给改了,而php用的加密算法估计与mysql用的不是一个,导致再进入mysql的时候总是说密码错误。在网上看了好多关于忘记mysql密码的帖子,可能针对不同的情况解决方法上略有差异,不能只看一种说法。针对我这种情况,我是这样解决的:1.打开cmd命令行,输入 net stop mysql 停止当前的mysql服务。2.跳到mysql安装目录下的bin目录下,输入 mysqld --skip-grant-tables 意思是现在可以不用密码登录了。 第一种方法:这时候可以打开mysql的命令行端,打开后是这样: 这时候不用输入密码就可以进
lihui_yy 阅读(5682) |
摘要: var xmlR if(window.ActiveXObject){ /*支持IE浏览器*/ xmlRequest = new ActiveXObject(&Microsoft.XMLHTTP&); }else if(window.XMLHttpRequest){ /*支持Firefox, chrome, safari等*/ xmlRequest = new XMLHttpRequest(); ...
lihui_yy 阅读(159) |
摘要: 这几天按照书上的案例对bbs的搭建多少学了点儿东西。其他的倒是没有什么,书上的编程规习惯很好,值得学习,类的划分和接口的定义对功能扩展提供了很大的方便。在程序中,用到了验证拦截器 AuthenticationInterceptor 。具体代码如下: 1 import java.util.M 2 3 import org.model.U 4 5 import com.opensymphony.xwork2.A 6 import com.opensymphony.xwork2.ActionI 7 import com.opensymphony.xw..
lihui_yy 阅读(1468) |
摘要: 最近一直在看一个工程例子,遇到一个问题就是在 jsp 文件中,通常会在 &s:form&标签中使用&s:submit&,而二者均有 action 属性,今天貌似明白了两个之间的区别,但是不知道理解的对不对,若有高手路过还请多指教~~例如,在struts.xml文件中设置了几个action如下:1 &action name=&UserLogin& class=&org.web.user.UserLoginAction&&2 &result name=&success& type=&re
lihui_yy 阅读(7856) |
摘要: Struts2中有时可能会需要使用一个Action来处理多个请求,来提高编码的效率和减少代码量。例如,在登录界面上的表单中可能会有登录和注册两个事件请求,有几种方式可以借鉴:1.采用DMI动态调用方法。 该方法的主要思想是在一个 Action 类中实现多个方法,然后每个 action 请求中表明要调用该类中的哪个方法。使用 actionname!method 方式调用。 (1)LoginAction 类代码如下:View Code 1 package com.main. 2 3 import com.opensymphony.xwork2.ActionS 4...
lihui_yy 阅读(8395) |
摘要: 1.index.jsp 1 &%@ page language=&java& pageEncoding=&UTF-8&%& 2 &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& 3 &html& 4 &head& 5 &script type=&text/javascript& language=&javaScript&& 6 var bgcolor = &#
lihui_yy 阅读(4104) |
摘要: 1.index.jsp 1 &%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%& 2 &html& 3 &head& 4 &script type=&text/javascript& language=&javaScript&& 5 var xmlHttp = //全局变量,用于记录XMLHttpRequest对象 6 function createX
lihui_yy 阅读(13959) |
摘要: 1.Bean有两种作用域属性,singleton 和 prototype ,默认为前者。对于singleton,当请求的 Bean 相同时,则不再重新生成新的实例化对象,通常应用程序中的组多组件都只需要一个实例就足够了。而 prototype ,用于每次返回 Bean 的一个新的实例,例如需要获取系统实时时间。&bean id=&mydate& class=&com.lihui.MyDate& scope=&prototype&&&/bean&2.各种注入方式所有的注入方式在Spring.xml 文件中配置如下
lihui_yy 阅读(4095) |
摘要: 摘自《JavaWeb开发从初学到精通》P379Spring的IoC容器就是一个实现了BeanFactory接口的可实例化类。事实上,Spring提供了两种不同的容器:一种是最基本的BeanFactory,另一种是扩展的ApplicationContext。BeanFactory 仅提供了最基本的依赖注入支持,而 ApplicationContext 则扩展了BeanFactory ,提供了更多的额外功能。实例化这两种容器时是有区别的:(1)BeanFactoryXmlBeanFactory bFactory = new XmlBeanFactory(new ClassPathResource(
lihui_yy 阅读(2474) |
摘要: 传统方式:通过接口访问对象必须经过实例化,这样就必然增加了代码之间的耦合度,而其调用时必须了解接口实现类中定义的内容,同时不同意对生成的对象进行管理。容器管理方式:当程序中用到该对象时,依赖容器进行实例化。实现方法调用是只须参考接口中实现的方法。当对象实例后通过容器提供的方法,对生成的对象进行管理,使用完毕后将对该实例对象进行消除。Spring依赖注入的方式有三种:接口注入、设置属性注入、构造方法注入。构造方法注入,在构造期间即创建一个完整、合法的对象。避免了繁琐的setter方法。设置属性注入,通过setter方法设定依赖关系。这种方式简单直观,因而在Spring的注入里大量使用。下面举个例
lihui_yy 阅读(862) |
摘要: Struts2中一共定义了4个主题,分别是simple、xhtml(默认)、css_xhtml、ajax。以下拉列表和移动列表框为例,移动列表框就类似于QQ中选择某些好友上线提醒一样。 1 &%@ page language=&java& import=&java.util.*& pageEncoding=&utf-8&%& 2 &%@ taglib prefix=&s& uri=&/struts-tags&%& 3 4 &!DOCTYPE HTML PUBLIC
lihui_yy 阅读(3042) |
摘要: 数据标签主要包括:action bean data debug i18n include param push set text url property 1 &%@ page language=&java& import=&java.util.*& pageEncoding=&utf-8&%& 2 &%@page import=&com.sun.org.apache.bcel.internal.classfile.Attribute&%& 3 &%@ taglib prefix=&q
lihui_yy 阅读(629) |
摘要: Struts2控制标签一共有9个。1. if2. else if 和 else3. append4. generator5. iterator6. merage7. sort8. subset看一下代码就容易理解了: 1 &%@ page language=&java& import=&java.util.*& pageEncoding=&utf-8& isELIgnored=&true&%& 2 &%@ taglib prefix=&s& uri=&/struts-
lihui_yy 阅读(787) |
摘要: 在jsp代码中:&s:set name=&score& value=&80&&&/s:set& &s:if test=&${score & 60}&& 你的成绩及格了 &/s:if&结果运行之后,网页上出现这么句:According to TLD or attribute directive in tag file, attribute test does not accept any expressions这个是因为不能识别EL表达式出现的问题。在jsp首部 &%@ pag
lihui_yy 阅读(544) |
摘要: 1.struts2 已有拦截器的使用官方文档解释:拦截器是动态拦截Action调用的对象,拦截器提供一种机制,允许开发者定义一段Action执行前或执行后的代码,也允许在一个Action执行前阻止其执行。在struts2-core-..jar包里,有struts-default.xml,这里定义了已有的拦截器。想使用的话,直接在自己工程的struts.xml中加入代码:&include file=&struts-default.xml&&&/include&例如,使用已有的timer拦截器,struts配置如下: 1 &!DOCTYPE str
lihui_yy 阅读(10970) |
摘要: 1 public class LetterMatchUtil { 2 private static String _ToEncode_ = &GBK&; 3 private static String _FromEncode_ = &GBK&; 4 5 public static int compare(String str1, String str2) { 6 int result = 0; 7 String m_s1 = 8 String m_s2 = 9 ...
lihui_yy 阅读(1573) |
摘要: 1.method标签格式:&s:submit name=&method:方法名& value=&按钮名&&其实很简单,举个例子说明:(1)action类,用来处理用户请求。methodPrefixAction.java 1 package com. 2 3 public class MethodPrefixAction { 4 public String execute1(){ 5 System.out.println(&execute1().....&); 6 7 } 8 publ
lihui_yy 阅读(10615) |
摘要: OGNL:Object-Graph Navigation Language,对象图导航语言 ,可以方便地操作对象属性的开源表达式语言。至于怎么说是表达式语言,看了书上的例子大概了解了一点。1. OnglAction.java 1 package com. 2 3 import javax.servlet.http.HttpServletR 4 5 import org.apache.struts2.ServletActionC 6 7 import com.opensymphony.xwork2.ActionC 8 import co...
lihui_yy 阅读(2220) |
摘要: 就是一个很简单的form,提交id和name,但是只要提交的是中文,就会是乱码,查找原因的过程中发现,jsp页面提交给action.java之后,已经开始为乱码,查了网上各种解决办法都没用,无奈最后只好在action.java中获取了HttpServletRequest,然后获取到的就是中文了。ActionContext ac = ActionContext.getContext();HttpServletRequest request = (HttpServletRequest)ac.get(ServletActionContext.HTTP_REQUEST);System.out.prin
lihui_yy 阅读(333) |
摘要: 我在配置自己第一个struts2的时候,是在myeclipse8.6中创建了一个新的Web Project,然后WebRoot/WEB-INF下的web.xml是自动生成的,xml头文件信息为:&?xml version=&1.0& encoding=&UTF-8&?&&web-app version=&2.5& xmlns=&http://java.sun.com/xml/ns/javaee& xmlns:xsi=&http://www.w3.org/2001/XMLSchema-in
lihui_yy 阅读(4910) |
摘要: 推荐博客:http://blog.sina.com.cn/s/blog_4f925fcu.htmlXML标签库JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用Dom和SAX标签库的繁琐,能轻松的读取xml文件的内容。1XML核心标签库1.&x:parse&标签&x:parse/&标签用来解析指定的xml文件。【语法1】:&x:parsedoc=”xmlDocument”{var=”name”[scope=”page|request|session|application”]|varDom=”name”[scope=”page|re
lihui_yy 阅读(3260) |
摘要: 推荐博客:http://blog.sina.com.cn/s/blog_4f925fcu.html怕博主把原文删了,所以在这里先保存一下、SQL标签库JSTL提供了与数据库相关操作的标签,可以直接从页面上实现数据库操作的功能,在开发小型网站是可以很方便的实现数据的读取和操作。本章将详细介绍这些标签的功能和使用方法。SQL标签库从功能上可以划分为两类:设置数据源标签、SQL指令标签。引入SQL标签库的指令代码为:&%@ taglib prefix=&sql& uri=&http://java.sun.com/jsp/jstl/sql&
lihui_yy 阅读(7498) |
摘要: 国际化这个分类中共包含两个标签:用于设定语言地区&fmt:setLocale/&和用于设定请求的字符编码的&fmt:requestEncoding&标签。1.&fmt:setLocale/&标签&fmt:setLocale&标签用来设定用户语言区域。【语法】:&fmt:setLocale value=”locale”[variant=”variant”][scope=”page|request|session|application”]&参数名说明EL类型必须默认值value指定区域代码是Stringjava.util.Locale是
lihui_yy 阅读(2978) |
摘要: 同样推荐一篇写的很详细的博客 http://blog.sina.com.cn/s/blog_4f925fcu.html读取消息资源主要有4个标签,在这里进行一下小总结:&fmt:buddle& &fmt:setBuddle& &fmt:message& &fmt:param& 四个标签之间的嵌套关系大概是这个样子:1 &fmt:buddle basename=&name&&2 &fmt:message key=&key&&3 &fmt:param value=&
lihui_yy 阅读(2858) |
摘要: 在写这篇文章之前,看见了一个写的非常详细的博客,基本上是把书上的东西一字不落的复制在了博客上,看起来很方便。地址:http://blog.sina.com.cn/s/blog_4f925fcw.html不过,我还是喜欢自己总结一下。 I18N格式标签库:I18N-capable formation tags library.它可以根据发出请求的客户端地域的不同来显示不同的语言。同时还提供了格式化数据和日期的方法。引入该标签库的方法为:&%@ taglib prefix=&fmt& uri=&http://java.sun.com/jsp/js
lihui_yy 阅读(6252) |
摘要: JSTL 核心标签库标签共有13个,功能上分为4类:1.表达式控制标签:out、set、remove、catch2.流程控制标签:if、choose、when、otherwise3.循环标签:forEach、forTokens4.URL操作标签:import、url、redirect使用标签时,一定要在jsp文件头加入以下代码:&%@taglib prefix=&c& uri=&http://java.sun.com/jsp/jstl/core& %&下面分别对这些标签进行说明:1. &c:out& 用来显示数据对象(字符串、表达
lihui_yy 阅读(225098) |
摘要: 下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/JSTL 标签库的配置:按照上面的地址下载 jar 包。然后按照下面的步骤在 tomcat 服务器上进行配置。首先,在 Tomcat 的工作目录,也就是安装目录下的 webapps/Root 目录下,新建一个 WEB-INF 文件夹,并在 WEB-INF 文件夹下新建一个 lib 文件夹,然后把下载下来的压缩包中 lib 文件夹中的 standard.jar 和 jstl.jar 复制到该 lib 文件夹中,接下来把压缩包中整个 tld 文件夹复制到 WE
lihui_yy 阅读(26903) |
摘要: JSP 页面中的应用指令的格式:&%@指令名 属性1=&属性值& 属性2=&属性值&...%&JSP中共有三个指令:(1)page: 用于定义JSP文件中的全局属性(2)include: 用于在JSP页面中包含另外一个文件的内容(3)taglib: 此指令能够让用户自定义新的标签第三个指令是用户根据业务需求定义标签,便于功能的实现,但是导致代码不容易读,所以,标签都是一些具有实例的公司开发。下面主要介绍前两个指令的使用。1.page 指令的常用属性及使用方法(1) language 声明脚本语言,目前只能使用Java&%@page la
lihui_yy 阅读(2478) |
摘要: 以前看示例代码的时候,经常看到jsp文件中出现诸如 ${...}一类的代码,一直困惑,今天看到了这一节的内容,也算有了个系统的学习,书上讲的很明白,也很简洁。1.EL表达式的语法格式很简单:以前编写jsp代码时,如果要获取表单中的用户名,一般使用 &%=request.getParameter(&name&)%& ,这样当然也可以获取到值,但是又把html代码和java代码混到一起,看起来比较乱套。现在使用EL表达式的话就比较简洁了:${param.name} 就可以解决了。注意:${表达式} 表达式部分不需要加引号,如果写成 ${&param.nam
lihui_yy 阅读(15852) |
摘要: 1.项目工程 web.xml 配置 1 &servlet& 2 &description&This is the description of my J2EE component&/description& 3 &display-name&This is the display name of my J2EE component&/display-name& 4 &servlet-name&DBServlet&/servlet-name& 5 &servlet-class&org.olive.DBS
lihui_yy 阅读(3943) |
摘要: 当对数据库的访问不是很频繁时,可以在每次访问数据库时建立一个连接,用完之后关闭。但是,对于一个复杂的数据库应用,频繁的建立、关闭连接,会极大的减低系统性能,造成瓶颈。所以可以使用数据库连接池来达到连接资源的共享,使得对于数据库的连接可以使高效、安全的复用。1.通过一个小测试来了解数据库连接池的原理(1)创建一个属性文件 dbpool.properties1 driverClassName=com.mysql.jdbc.Driver2 username=root3 password=iloveyou4 url=jdbc:mysql://localhost:3306/student5 poolSi
lihui_yy 阅读(12691) |
摘要: 【转载】原文地址:http://hi.baidu.com/hivemind/blog/item/f95ecafe333ebe.htmlpushlet是comet的一个实现框架,在Servlet机制下,数据从server端的java对象直接推送(push)到html页面,无需插件的支持。至于comet和ajax的区别什么的,大家上网看一下即可,这里不做太多说明。首先去下载pushlet,下载地址:http://www.pushlets.com/,我下载的是一个当下最新的版本2.0.4。下面以一个例子做下说明,详细的可以看一下pushlet自身带的例子,源码也不是很复杂,包括几
lihui_yy 阅读(8235) |
摘要: ExtJS:E-mail邮箱验证正则表达式 : regex: /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/汉字输入验证正则表达式: regex: /^[\u4E00-\u9FA5]+$/以下内容是从网上转过来的,想仔细学一下1.字符x 字符 x。例如a表示字符a\\ 反斜线字符。在书写时要写为\\\\。(注意:因为java在第一次解析时,把\\\\解析成正则表达式\\,在第二次解析时再解析为\,所以凡是不是1.1列举到的转义字符,包括1.1的\\,而又带有\的都要写两次)\0n 带有八进制值 0的字符 n (0 &= n &
lihui_yy 阅读(214) |
lihui_yy 阅读(282) |
摘要: 1.验证码的代码是在网上搜罗的,是底纹乱线类的数字验证:authcode.jsp: 每次调用都会在 session 中添加一个属性,验证用户输入是否正确是只需再取出和输入内容比较即可&%@ page contentType=&image/JPEG& import=&java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*& pageEncoding=&GBK&%&&%!Color getRandColor(int fc, int bc) {//给定范围获得随机颜色
lihui_yy 阅读(4041) |
摘要: 存CookieCookie idCookie = new Cookie(&userId&, request.getParameter(&id&));Cookie psdCookie = new Cookie(&psd&, request.getParameter(&psd&));idCookie.setMaxAge(3600);//存3600秒也就是1小时psdCookie.setMaxAge(3600);response.addCookie(idCookie);response.addCookie(psdCook
lihui_yy 阅读(1034) |
摘要: 配置/WEB-INF/web.xml文件: &servlet& &servlet-name&count&/servlet-name& &jsp-file&/WEB-INF/count.jsp&/jsp-file& &init-param& &param-name&driver&/param-name& &param-value&org.git.mm.mysql.Driver&/param-value& &/init-param& &init-param&gt
lihui_yy 阅读(175) |
摘要: &%@ page language=&java& import=&java.util.*& pageEncoding=&GBK&%&&%@ page contentType=&text/ charset=GBK& %&&%@page import=&java.math.BigInteger&%&&%@page import=&java.io.File&%&&%@page import=&java.io.
lihui_yy 阅读(341) |
摘要: &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&&html& &head& &title&输入需保存的内容&/title& &meta http-equiv=&content-type& content=&text/ charset=GBK&& &/head& &body& &form action=&fileoperate.jsp&qu
lihui_yy 阅读(8704) |}

我要回帖

更多关于 java中的标识符 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信