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
相关文档:
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"Cambria Mat ......
语言:
扎实的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 标准与规范
本栏目提供了大量的 Java 技术标准与规范的简介、官方网址以及 developerWorks 网站上相关的技术资源。通过本栏目,您不但可以了解当前 Java 社区主要的技术标准和规范,还可以通过查看相关的技术文章和教程进行更深入的学习,从而更好地为实际的 Java 项目进行技术选型。
A B C D E F ......
关键字: 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{ ......
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
public class TestDesktop {
public static void main(String[] a) {
try {
Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
}
desktop.open(new File("/hom ......