Java入门知识

发表于:2007-07-04来源:作者:点击数: 标签:
What is Java? Why Java? 大家学习Java有各自的理由,基本上Java是一个比较好的 面向对象 语言,api丰富 是当前比较主流的编程语言,J2SE/J2ME/J2EE在各个开发领域都发展良好 Java不会取代其他 开发语言 或开发平台,如c/c++/c#或Delphi/.NET 没有最好的语言
What is Java? Why Java?                                                                                                 
  大家学习Java有各自的理由,基本上Java是一个比较好的面向对象语言,api丰富
  是当前比较主流的编程语言,J2SE/J2ME/J2EE在各个开发领域都发展良好
  Java不会取代其他开发语言或开发平台,如c/c++/c#或Delphi/.NET
  没有最好的语言,只有某种应用场合下相对合适的语言                                                                     

JRE                                                                                                                     
  Java 2 Runtime Environment, Java 运行时环境
  包括Java虚拟机(JVM),和必须的类库
  它是运行Java程序和网页Applet的必备环境
  它被包含在j2sdk中,也可以单独下载(约10M)
  下载地址: http://java.sun.com/getjava/download.html

JDK/SDK/J2SE                                                                                                            
  Java 2 Software Development Kit, Standard Edtion
  是开发Java的必备环境,包括编译器等工具和大量类库,一般IDE中也会自带
 下载地址:http://java.sun.com/j2se/downloads.html

J2EE                                                                                                                    
  Java 2 Platform, Enterprise Edition
  是Java在企业级应用的主要技术,也是目前Java最主要的应用场合
  包括JAXP、JAXR、JAX-RPC、SAAJ、JAAS、JavaMail、JMS、JSF、JSP/Servlet等
  开发J2EE,可以下载j2eesdk开发包,一般IDE中也会自带
  相关链接:http://java.sun.com/j2ee

J2ME                                                                                                                    
  Java 2 Platform, Macro Edition
  是Java应用于嵌入式系统(如手机)的主要技术
  相关链接:http://java.sun.com/j2me

开发方式                                                                                                                
  市面上的IDE(集成开发环境)可以极大的提高开发效率
  但如果你初学Java,我们推荐用JDK+Editplus或UltraEdit
  虽然简陋些,但却可以学的比较扎实
  过早的依赖IDE只会让你对Java API蜻蜓点水,一知半解.
  甚至都未能掌握Java的基本语法
  掌握了扎实的基础后,再选择一款IDE进行开发是很容易的

  学习或使用Java,多查javadoc是很重要的(推荐使用JavaDOCHelper,类似MSDN的界面)
  版上的不少问题,其实稍微查查便不是问题

设置环境变量                                                                                                            
 安装了JDK以后,要配置环境变量
  Windows 2000                                                                                                         
    我的电脑->属性->高级->环境变量
    添加以下环境变量(假定你的java安装在d:\Java\j2sdk1.4.2)
        变量名     值                  说明
        JAVA_HOME  d:\Java\j2sdk1.4.2
        CLASSPATH  .                   .表示当前目录,即搜索当前目录
        PATH       ...;%JAVA_HOME%\bin  ...表示原来的PATH值
     新开一个dos窗口,键入java和javac测试一下
  Linux                                                                                                                
     以下为RedHat,bash为例 不同发行版略有不同,环境变量的设置详见Unix/Linux版
     修改用户目录下的.bash_profile,如vi ~/.bash_profile
     JAVA_HOME=/usr/local/java/j2sdk1.4.2
     CLASSPATH=.
     PATH=$PATH:$JAVA_HOME/bin
     export JAVA_HOME CLASSPATH
     重新登陆,使这个设置生效,在终端输入java  javac测试一下

简单测试程序                                                                                                            
 代码:--------------------------------
  public class Test{
   public static void main(String[] args){
    System.out.println("Hello world!");
   }
  }
 -------------------------------------
  用记事本等工具编写,保存成Test.java
  注意,
    如果你的windows设置'不显示已知扩展名'的话,
    很有可能被保存成Test.java.txt
  然后在命令行工具,cd到Test.java所在目录,执行
   javac Test.java
   java Test

关于Java的学习                                                                                                          
  入门Java,请看一本系统讲解Java的书籍
  这方面的书,市面上很多,大同小异,无所谓挑那本
  但尽量挑本面向高版本的讲解语法的书,千万不要选《VJ++入门到精通》之类
  推荐的书籍如 Java in a Nutshell, Java大学教程,Java核心技术,Java编程思想等
  系统学习Java的基本知识之余,一定要勤实践,自己给自己一些动手机会
  适度的记住一些常用api,不要过分依赖IDE的代码提示

开发工具                                                                                                                

 JBuilder
    业界最主流的IDE之一,是Java开发工具的大哥大
    目前最新版本 JBuilder 2005
    无论开发j2se、j2me、j2ee还是xml/webservice,都是一把利器
    Foundation Edition可免费下载,但功能较少
    网上有流传企业版,为避免不必要的麻烦,请谨慎使用(尤其在公司)
    相关链接:http://www.borland.com/products/jbuilder

 Eclipse
    新兴的Java IDE,免费、开放源代码、跨平台、功能强大、运行速度快
    同时可以通过开发新的插件扩展现有插件的功能,比如在现有的Java开发环境中加
    入Tomcat服务器插件。
    相关链接:http://www.eclipse.org

 Ant
    它是流行的Java build工具,"Everyone should use ant"
    Ant不是一个IDE,但却可以做很多IDE的事,如编译/打包/部署/单元测试/CVS
    对于中等规模以上的项目,必定依赖很多类库和拥有复杂的包结构
    使用Ant处理这些是极佳的选择
    相关链接:http://ant.apache.org

JSP                                                                                                                     
 Java Server Page,一种Java Web开发的一项技术,和javascript没有什么关系.

Servlet                                                                                                                 
 先于jsp出现的动态网页技术,类似cgi,但使用多线程处理请求.

jsp/servlet与Java的关系                                                                                                 
 Servlet只是继承了HttpServlet的Java类,而jsp最终会被编译成Servlet并执行
 很多在开发web时遇到的问题,其实和jsp/servlet本身没什么关系,而是普通的Java问
题。 一个合格的jsp/servlet程序员首先应该是合格的Java程序员。
 建议在学习和使用jsp/servlet前,先打下坚实的Java基础

 以下问题不属于jsp/servlet范畴
  .常用API的使用,诸如"如何把int变为String" "如何得到当前时间" "如何创建线程"
  .JDBC的使用和相关注意事项,诸如"如何访问MySQL" "为什么我插入数据是乱码"
  .其他J2EE技术的使用,诸如"如何使用JavaMail" "如何访问EJB"

推荐书籍                                                                                                                
 如果可能,请阅读一本系统的书籍来指导你学习这项技术
 笔者只看过"JSP高级编程"(机械工业2001年,廖若雪)
 其他大型出版社出版的书都应该不错,如Wrox,O'Reilly,或者国内出版社
 挑书的时候最好选用jsp 1.2,servlet 2.3规范以上的书籍

Tomcat                                                                                                                  
 这个是个开放源代码的JSP/Servlet服务器,是jsp/servlet的参考实现,适合初学
 主页http://jakarta.apache.org/tomcat/
 Tomcat 4.1和Tomcat 5都是目前稳定版本,后者支持最新的jsp/servlet标准
 建议下载zip版的,解压缩,运行bin/starup.bat即可出现服务器启动的界面
 如果启动失败,请确定本机的Java环境已正确,参见JAVA_HOME和PATH的配置

 conf目录里是服务器的配置,webapps是部署网站的目录

自己写的java class应该放哪里                                                                                            
 假设你的index.jsp的位置是X:/test/index.jsp,  X:/test是你的项目目录
 Test.class的位置应该是X:/test/WEB-INF/classes/Test.class

项目中的lib应该放哪里                                                                                                   
 X:/test/WEB-INF/lib/myLib.jar

如何写个servlet                                                                                                         
package testservlet;

import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;

public class FooServlet extends HttpServlet {
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
      resp.getWriter().println("hi, I'm a servlet");
 }
}
编译这个类  javac -classpath servlet-api.jar FooServlet.java
其中这个jar可以从tomcat-5.0.19\common\lib\servlet-api.jar获得
编译后的class放在 X:/test/WEB-INF/classes/testservlet/FooServlet.class
其中testservlet你包的名字,应尽量写package,避免莫名其妙的麻烦

编译X:/test/WEB-INF/web.xml,修改为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>testservlet.FooServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>test<ervlet-name>
    <url-pattern>/foobar</url-pattern>
  </servlet-mapping>
</web-app>
把这个程序部署到服务器上,比如把X:/test/*复制到tomcat/webapps/test/*
打开浏览器访问 http://localhost:8080/test/foobar,顺利的话会看到一行文字

jsp显示的是乱码怎么办                                                                                                   
 jsp的中文问题以下几种  //不包括jdbc读写数据库的中文问题
 1. jsp中写了中文如<p>中文</p>, 却不能显示
       解决方法 在jsp第一行加入                                                                                        
          <%@ page contentType="text/html; charset=gb2312" %>

 2. 表单中写了一个中文,如<input type="text" name="a" value="中文">
    却不能接受到 <%System.out.println(request.getParameter("a"));%>
       解决方法 在jsp或servlet中处理参数前加一条                                                                       
          request.setCharacterEncoding("GB2312");

 3. http://host/a.jsp?name=中文  这样的url中的name取不到
       解决方法 应该使用java.net.URLEncoder类把这个字符串转成ascii                                                     

怎样实现文件上传                                                                                                        
 常见的Java文件上传api有
    Jakarta Commons FileUpload http://jakarta.apache.org/commons/fileupload/
    COS
    SmartUpload
 下载相关的文件,里面一般有demo的

JSTL和EL                                                                                                                
 分别是Java Standard Tag Lib和Expression Language
 可以大大简化常规的jsp开发,并让页面更简洁,而不是充斥着scriptlet

原文转自:http://www.ltesting.net