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,oreilly,或者国内出版社
挑书的时候最好选用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, im 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
