java web标记技术
1 jsp 基础概念
jsp是在传统的html页面中,加入java的程序片段和jsp标记,就构成了jsp页面。当web服务器遇到对jsp的访问请求时,先执行对其中的java程序片段,然后以html的格式返回给用户。 java程序片段可以用来操作数据库,重定向网页,或者是发送E-mail ,验证登陆信息, 这些操作都是在服务器端完成,用户仅仅是得到运行后的结果。
可以想象,jsp其实就是Servlet的另一种形式,当jsp引擎对Jsp页面进行解析后会生成一个类似Servlet的文件,然后交由Servlet引擎编译执行。
也就是说 jsp 和Servlet在编译后在服务器中的形式是一致的。
2 标记库技术
产生的原因:
(1) java程序员和页面美工人员必须同时工作。这是个很大的缺点。
web程序员在后台设计各种标记,而页面设计人员则直接使用程序员设计好的标记进行处理页面。
(2)首先编写<hello:sayhello>的java实现,如下:
package servletPackage;
import java.io.IOException;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
public class HelloTag implements Tag {
//定义页面的上下文
private PageContext context = null ;
//实现tag接口
public void setPageContext(PageContext pageContext){
this.context = pageContext ;
}
//实现Tag接口
public void setParent(Tag tag){
}
public Tag getParent(){
return null ;
}
//实现Tag 接口,并执行表集体
public int doStartTag(){
try {
context.getOut().print("Hello from Tag") ;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SKIP_BODY ;
}
public HelloTag() {
super();
}
public int doEndTag() throws JspException {
// TODO Auto-generated method stub
return SKIP_PAGE;
}
public void release() {
// TODO Auto-generated method stub
}
}
(3) 然后再WEB-INF文件夹下编写一个后缀为.tld的xml文件,用以声名自定义的标签。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsys
相关文档:
java中的事件机制的参与者有3种角色:
1.event object:事件状态对象,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中
2.event source:具体的事件源,比如说,你点击一个button,那么button就是event source,要想使button对某些事件进行响应,你就需要注册特定的listener。
3.event listener ......
语言:
扎实的Java基础;熟悉Java核心API;
精通J2EE开发;熟练掌握EJB;
精通Java Web开发;熟练掌握Servlet/JSP;
精通Java XML开发;
框架:
精通Spring、Struts、Hibernate、JSF等框架;
精通axis1.0-axis2.0、XFire、CXF等框架;
规范:
精通Web Service;
精通Web2.0 ;
工具:
......
这是一个Java版的世界时钟示例,移植自Gerrit创建的同名Swing应用(http://www.jug-muenster.de/swing-worldclock-427
),需要运行在JRE1.5或以上环境当中。
移植此示例主要是因为前一阵移植过Gerrit的swing原子钟示例,所谓好事成双,这个世界时钟的示例自然不能放过(话说Gerrit为什么那么喜欢做时钟?…&hellip ......
关键字: java多线程例子
到这里我们做一个完整的例子来说明线程产生的方式不同而生成的线程的区别:
package debug;
import java.io.*;
import java.lang.Thread;
class MyThread extends Thread{
public int x = 0;
public void run(){
System.out.println(++x);
}
}
class R implements Runnable{ ......