初学者问的诸如:怎样配置环境变量?怎样运行servlet啊?这样的问题太多了,现在我写一个初学者入门必读,希望能对初学者有指导作用!
首先是下载工具:
我建议初学者用editplus+jdk,我觉得如果用例如jb,eclipse,jcreator,虽然刚开始的时候比较方便,但是确使初学者门不知道怎样配置环境变量,从而难以达到知其然,知其所以然的地步。
可以通过如下地址下载:
editplus(最新版本是v2.11):http://count.skycn.com/softdown.php?id=3641&url=http://sc-http.skycn.net/down/epp211a_cn.exe
jdk(最新版本是java2sdk1_4_2):http://count.skycn.com/softdown.php?id=3116&url=http://sc-http.skycn.net/down/j2sdk-1_4_2-windows-i586.exe(这是for windows)
然后就是安装jdk,我是把它装到从c:/jdk目录下面。
然后设置classpath的问题了:
正如操作系统利用path来搜索可执行程序一样,java运行环境也会遍历classpath来查找类,即便是helloworld这样简单的程序,jvm也会遍历classpath定义的每一个路径,直到找到相应的文件为止。
相信大家用的系统不是2k就是xp,然后就应当如下设置path:
我的电脑->属性->高级->环境变量
然后在环境变量的path后面追加: c:/jdk/bin;.;c:/jdk/lib
也可以这样配置:c:/jdk/bin;.;c:/jdk/lib/dt.jar;c:/jdk/lib/tools.jar
记住:环境变量中的 . 切记不能少,它表示当前路径,如果少掉出现的错误等会就说!
dt.jar是关于运行环境的类库,tools.jar是关于一些工具的类库
如果没有配置:c:/jdk/bin,则会出现 “ javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。”这样的错误。
下面我们就写一个示例程序:
打开editplus,新建一个java文件,请照着如下输入,要一字不漏,并且分清大小写:
public class helloworld{
public static void main(string[] args){
system.out.println("hello,world!");
}
}
然后把这个文件保存(ctrl + s)到helloworld.java,java是分大小写的,所以大小写一定要分清,是helloworld.java不是helloworld.java或者其他。
运行:开始->运行->cmd
在控制台中把目录切换到当前目录:
javac helloworld.java
java helloworld
你就会在控制台上看见输出的hello,world!
javac是编译命令,它把helloworld.java编译成helloworld.class
java就是解释命令,jvm把helloworld.class解释执行.
在这个时候:
1、如果出现exception in thread "main" java.lang.noclassdeffounderror: helloworld
那就是你在环境变量中没有加上那个.(dot)
2、如果出现exception in thread "main" java.lang.nosuchmethoderror: main
或者helloworld.java:1: public class helloworld must be defined in a file called
"helloworld.java".
那就是你没有分清大小写的写入这个helloworld,或者保存得时候没有保存为helloworld.java。这个名字一定要跟public class的名字一样
对于环境变量的问题就说到这里,下面我先所说怎么在editplus里面编译和运行,在tools->参数设置->配置用户工具
1.添加工具(添加应用程序)
菜单文字:compile java program
程序:c:/jdk/bin/javac.exe
参数:文件名称
初始目录:文件目录
2.添加工具(添加应用程序)
菜单文字:run java program
程序:c:/jdk/bin/java.exe
参数:文件名称(不含扩展名)
初始目录:文件目录
工具组名称可以随便添,比如debug java program。
然后在tools的下拉菜单中,你就会看见compile java program以及run java program这两个选项,以后你就可以利用ctrl + 1编译和ctrl +2运行程序了
下面我们讨论servlet的运行环境:
要运行servlet,则需要jsp/servlet container,我建议初学者用tomcat。
tomcat(最新版本5.0):http://cvs.apache.org/builds/jakarta-tomcat-5/nightly/jakarta-tomcat-5-bin-20030725.zip
然后把这个压缩包解压到:
c:/tomcat
然后再配置环境变量;添加三个系统变量:
java_home: c:/jdk
tomcat_home: c:/tomcat
classpath: %java_home%/lib;%tomcat_home%/lib
tomcat的环境变量就配置完毕了,下面检验tomcat是否能够运行:
在控制台中转到c:/tomcat/bin这个目录,运行startup,然后回出现一个窗口,连跳一大串东西,最后表示server已经运行。
在浏览器中输入http://localhost:8080,出现欢迎界面,则表示tomcat没问题了。然后和上面一样,写入你的第一个servlet。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class helloworld extends httpservlet
{
public void doget(httpservletrequest request,httpservletresponse response)
throws servletexception,ioexception
{
response.setcontenttype("text/html");
printwriter out = response.getwriter();
out.println("<html><head><title>");
out.println("this is my first servlet");
out.println("</title></head><body>");
out.println("<h1>hello,world!</h1>");
out.println("</body></html>");
}
}
然后照样用javac helloworld.java来编译这个文件,如果出现无法import javax.servlet.*
那么就是应该把c:/tomcat/common/lib里面的servlet.jar文件拷贝到c:/jdk/jre/lib/ext中,再次编译,就没有问题了!
然后在tomcat目录里面的c:/tomcat/webapps/root里面按如下的文件结构:
root/index.html
root/welcom.jsp
root/web-inf/lib/myservlet.jar(如果你的servlet的.class打成了.jar文件,则放在lib下面)
root/web-inf/classes/helloworld.class(把上面生成的helloworld.class文件放在这个里面)
然后在浏览器中输入http://localhost:8080/servlet/helloworld,于是server众望所归的报错了:error 404--not found
怎么回事呢?
servlet必须使用c:/tomcat/webapps/root/web-inf这个目录下面的web.xml文件进行注册,用ep打开这个web.xml文件,在里面加入:
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>helloworld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/servlet/helloworld</url-pattern>
</servlet-mapping>
这样的结构
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>helloworld</servlet-class>
</servlet>
表示指定包含的servlet类。而以下的结构:
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/servlet/helloworld</url-pattern>
</servlet-mapping>
表示指定helloservlet应当映射到哪一种url模式。
在修改web.xml完毕过后,重新启动server,然后再输入http://localhost:8080/servlet/helloworld,那么偌大一个hello,world!等着你呢。
附:jsp开发环境配置全过程
在配置jsp开发环境的过程中会碰到不少问题,感谢许多前辈经验总结性的文章对我来说简直是雪中送碳,为了帮助像我一样的初学者,在此总结了不少作者的经验,非常感谢他们的无私奉献精神,也希望更多的人把这种精神发扬光大。
以下软件下载连接地址无法显示的话,请直接到官方网站下载即可!
软件下载
mysql
下载版本:mysql-4.1.13-win32.zip(windows downloads)
http://dev.mysql.com/downloads/mysql/4.1.html
jdbc驱动
下载版本:mysql-connector-java-3.1.10.zip
http://dev.mysql.com/downloads/connector/j/3.1.html
下载j2sdk
下载版本:jdk-1_5_0_04-windows-i586-p.exe
http://java.sun.com/j2se/1.5.0/download.jsp
下载tomcat
下载版本: jakarta-tomcat-5.5.9.exe
http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi
安装,配置j2sdk:
执行j2sdk安装程序,按默认设置进行安装,也可自定义路径,但需修改下面的配置
配置j2sdk:
配置环境变量:
我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:
java_home=c:/program files/java/jdk1.5.0_04
classpath=%java_home%/lib/dt.jar;
%java_home%/lib/tools.jar;
path=%java_home%/bin;
%systemroot%/system32;
%systemroot%;
%systemroot%/system32/wbem
写一个简单的java程序来测试j2sdk是否已安装成功:
public class hello
{
public static void main(string args[])
{
system.out.println("hello");
}
}
将程序保存为文件名为hello.java的文件。
打开命令提示符窗口,进入到hello.java所在目录,键入下面的命令:
javac hello.java
java hello
此时若打印出来hello则安装成功,若没有打印出这句话,仔细检查以上配置是否正确。
注意系统文件夹选项中应确定“隐藏已知文件类型的扩展名”不勾选。
安装,配置tomcat
执行tomcat安装程序,按默认设置进行安装,也可自定义路径,但需修改下面的配置:
我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量
catalina_home=c:/program files/apache
software foundation/tomcat 5.5
catalina_base=c:/program files/apache
software foundation/tomcat 5.5
修改环境变量中的classpath,把tomat安装目录下的common/lib下的servlet-api.jar添加到classpath中去,修改后的classpath如下:
classpath=%java_home%/lib/dt.jar;
%java_home%/lib/tools.jar;
c:/program files/apache software foundation/tomcat 5.5/common/lib/servlet-api.jar;
启动tomcat,在ie中访问http://localhost:8080,若看到tomcat的欢迎页面的话说明安装成功。
安装mysql
解压缩mysql-4.1.13-win32.zip,运行setup.exe
首先出现的是安装向导欢迎界面,直接点击“next”继续,选择安装类型,选择“自定义”custom安装,然后点“next”下一步,出现自定义安装界面,选择安装路径:c:/mysql server 4.1(可自定义)点“ok”返回到自定义安装界面,路径已改为设置的路径,点“next”,准备开始安装,点“install”开始安装,完成后出现创建mysql.com帐号的界面。
如果是首次使用mysql,选“create anew free mysql.com accout”,点“next”,输入你的email地址和自己设定的用于登录mysql.com的密码,填完后点“next”进入第二步,填写姓名等相关信息,填完点“next”,进入第三步,填完电话号码、公司名称等信息后,点“next”,然后出现预览你刚才填的信息的界面,点“next”出现安装完成界面。
注意,这里有个配置向导的选项(configure the mysql server now),建议勾选立即配置你的mysql。许多说安装完mysql后无法启动,原因就在于没有配置mysql。
点击“finish”完成安装,并开始配置mysql,点“next”,进入配置类型选择页面。选“detailed configuration”(详细配置),点“next”,进入服务类型选择页面。选“developer machine”(开发者机器),这样占用系统的资源不会很多,点“next”后,进入数据库用法选择页面。
选择“multifunctional database”,点“next”,进入选择innodb数据存放位置页面,不用更改设置,直接放在installation path安装目录里即可,然后点“next”,选择mysql的同时联接数,选择“manual setting”,设置为100(根据自己需要,酌情设置)
点“next”,配置mysql在tcp/ip通讯环境中的端口选择默认的3306端口即可。点“next”,选择mysql中的字符设置,注意,这里的选择将会影响你是否能在mysql中使用中文。选择gb2312字符集以便支持简体中文,点“next”,设置windows服务选项,注意,这里的选择很关键。
“install as windows service”一定要勾选,这是将mysql作为windows的服务运行。“service name”就用默认的“mysql”下面的“launch the mysql server automatically”一定要勾选,这样windows启动时,mysql就会自动启动服务,要不然就要手工启动mysql。
许多人说安装mysql后无法启动、无法连接、出现10061错误,原因就在这里。点“next”,设置根帐号root的登录密码,“modify security settings”是设置根帐号的密码,输入你设定的密码即可。
“create an anonymous account”是创建一个匿名帐号,这样会导致未经授权的用户非法访问你的数据库,有安全隐患,建议不要勾选。
点“next”,mysql配置向导将依据你上面的所有设定配置mysql,以便mysql的运行符合你的需要,点“execute”开始配置,当出现“service started successfully”时,说明你的配置完成,mysql服务启动成功
点“finish”完成,整个mysql的配置完成,剩下的就是用mysql客户端连接mysql服务器,然后使用了。
安装jdbc驱动:
解压缩mysql-connector-java-3.1.10.zip
将要使用的是mysql-connector-java-3.1.10-bin-g.jar
和mysql-connector-java-3.1.10-bin.jar
配置
在c:/program files/java目录下建立mysqlforjdbc子目录,进入该目录将mysql-connector-java-3.
1.10-bin.jar到该目录下
进入c:/program
files/java/jdk1.5.0_04/lib目录将mysql-connector-java-3.1.10-bin-g.jar拷贝到该目录下
然后配置classpath,追加%java_home%/lib/mysql-connector-java-3.1.10-bin-g.
jar;c:/program
files/java/mysqlforjdbc/mysql-connector-java-3.1.10-bin.jar;到该环境变量中去。
追加以后环境变量如下:
classpath=%java_home%/lib/dt.jar;
%java_home%/lib/tools.jar;
c:/program files/apache software
foundation/tomcat5.5/common/lib/servlet-api.jar;
%java_home%/lib/mysql-connector-java-3.1.10-bin-g.jar;
c:/program files/java/mysqlforjdbc
/mysql-connector-java-3.1.10-bin.jar;
配置这个的目的是让java应用程序找到连接mysql的驱动。
查看并启动mysql服务
在windows xp下安装完mysql后,它就已经自动启动服务了,并且在开始菜单中有其客户端的快捷方式连接,可以通过windows的服务管理器查看。“开始”-“运行”,输入“services.msc”,回车。
弹出windows的服务管理器,然后就可以看见服务名为“mysql”的服务项了,其右边标明“已启动”在开始菜单-所有程序-mysql-mysql server 4.1-mysql command line client用客户端的快捷方式连接,输入安装时设置的密码即可。
数据库的使用
mysql安装完毕以后,在开始菜单-所有程序-mysql-mysql server 4.1-mysql command line client用客户端的快捷方式连接
输入安装时设置的密码
使用mysql的基本命令(在mysql命令行编辑每输入完命令后最后一定要有分号)
显示数据库:show databases;
使用数据库:use 数据库名;
建库
在mysql里建一个数据库first,以及在数据库里建一个表about
命令:create database first;
为数据库设置权限(用户和密码)
命令:
grant all privileges on first.* to test@localhost identified by “123456”;
当你执行完这个命令以后,只要你再以用户名:test,密码:123456登录时你就只可以对first这个数据库操作,这样避开使用root
输入命令:use first;
使用first数据库;
在first库中建表
命令:
create table about(id int(8)
primary key,name varchar(10));
在表中假如数据:
命令:
insert into about values
('xyw1026','laojiang');
退出
命令:
exit
jsp连接mysql
在c:/program files/apache software foundation/tomcat5.5/webapps目录下建立子目录myapp
进入c:/program files/apache software foundation/tomcat5.5/webapps/myapp目录下
用记事本编写一个文件保存为first.jsp
代码如下:
<%@ page contenttype="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%class.forname
("org.gjt.mm.mysql.driver").newinstance();
string url ="jdbc:mysql:
//localhost/softforum?user=
soft&password=soft1234&useunicode=
true&characterencoding=8859_1"
//first为你的数据库名
connection conn= drivermanager.getconnection(url);
statement stmt=conn.createstatement
(resultset.type_scroll_sensitive,
resultset.concur_updatable);
string sql="select * from first";
resultset rs=stmt.executequery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getstring(1)%>
您的第二个字段内容为:<%=rs.getstring(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
在浏览器中输入:
http://127.0.0.1:8080/myapp/first.jsp
若出现:
id|num
0 |laojiang
数据库操作成功,恭喜你,表示配置成功
进入c:/program files/apache software foundation/tomcat5.5/webapps/myapp目录
在myapp目录下新建一个目录web-inf,注意,目录名称是区分大小写的;
在web-inf下用记事本新建一个文件,命名为web.xml,内容如下:
<?xml version="1.0" encoding="iso-8859-1"?>
<!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>
<display-name>my web application</display-name>
<description>
a application for test.
</description>
</web-app>
在myapp下用记事本新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:
<html><body><center>
now time is: <%=new java.util.date()%>
</center></body></html>
重启tomcat
打开浏览器,输入http://localhost:8080/myapp/index.jsp
看到当前时间的话说明成功安装。
建立自己的servlet:
用记事本新建一个servlet程序,文件名为helloworld.java,文件内容如下:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class helloworld extends httpservlet
{
public void doget
(httpservletrequest request
,httpservletresponse response)
throws servletexception,ioexception
{
response.setcontenttype("text/html");
printwriter out = response.getwriter();
out.println("<html><head><title>");
out.println("this is my first servlet");
out.println("</title></head><body>");
out.println("<h1>hello,world!</h1>");
out.println("</body></html>");
}
}
编译
将helloworld.java剪切到c:/program files/apache software foundation/tomcat5.5/common/classes目录下
命令行方式下输入:
cd c:/program files/apache software foundation
/tomcat5.5/common/classes
javac helloworld.java
用javac helloworld.java来编译这个文件,如果出现无法import javax.servlet.*
则将c:/program files/apache software
foundation/tomcat5.5/common/lib目录下的servlet-api.jar文件拷贝并添加到
c:/program files/java/jre1.5.0_04/lib/ext目录中去就可以了。
然后在c:/program files/apache software
foundation/tomcat5.5/common/classes下会产生一个编译后的servlet文件:
helloworld.class
用记事本打开c:/program files/apache software
foundation/tomcat5.5/webapps/root/web-inf目录下的web.xml如下所示,添加后的
内容如下:
<!-- jspc servlet mappings start -->
<servlet>
<servlet-name>org.apache.
jsp.index_jsp</servlet-name>
<servlet-class>org.apache.
jsp.index_jsp</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>org.apache.
jsp.index_jsp</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>helloworld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/servlet/helloworld</url-pattern>
</servlet-mapping>
<!-- jspc servlet mappings end -->
</web-app>
这段话中的servlet这一段声明了你要调用的servlet,而servlet-mapping则是将声明的servlet“映射”到/servlet/helloworld地址上。
启动tomcat,启动浏览器,输入http://localhost:8080//servlet/helloworld,如果看到输出helloworld!就说明编写的servlet成功了。注意:修改了web.xml以及新加了class,都要重启tomcat也可以在自己创建的目录下测试如:
将helloworld.class拷贝到c:/program files/apache software
foundation/tomcat5.5/webapps/myapp/web-inf/classes目录下
其中classes目录若没有就创建一个
用记事本打开c:/program files/apache software foundation/tomcat5.5/webapps/myapp/web-inf目录下的web.xml如下所示,修改后的内容如下:
<!-- jspc servlet mappings start -->
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>helloworld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/servlet/helloworld
</url-pattern>
</servlet-mapping>
<!-- jspc servlet mappings end -->
</web-app>
启动tomcat,启动浏览器,输入http://localhost:8080/myapp/servlet/helloworld 如果看到输出helloworld!就说明编写的servlet成功了。注意:修改了web.xml以及新加了class,都要重启tomcat,建立自己的javabean:
用记事本新建一个java程序,文件名为testbean.java,文件内容如下:
package test;
public class testbean
{
private string name = null;
public testbean(string strname_p)
{
this.name=strname_p;
}
public void setname(string strname_p)
{
this.name=strname_p;
}
public string getname()
{
return this.name;
}
}
编译
将testbean.java放在c:/test下,使用如下命令编译:
c:/test>javac testbean.java
然后在c:/test下会产生一个编译后的bean文件:testbean.class
将testbean.class文件剪切到c:/program files/apache software
foundation/tomcat5.5/webapps/myapp/web-inf/classes/test目录下,
若无某些子目录则创建一个,新建一个testbean.jsp文件,文件内容为:
<%@ page import="test.testbean" %>
<html><body><center>
<%
testbean testbean=new testbean
("this is a test java bean.");
%>
java bean name is:
<%=testbean.getname()%>
</center></body></html>
重启tomcat,启动浏览器,输入http://localhost:8080/myapp/testbean.jsp 如果看到输出java bean name is: this is a test java bean 就说明编写的javabean成功了。