入门必读:ServletJSP配置超详解+异常

    技术2022-05-11  98

    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.javajava HelloWorld

      你就会在控制台上看见输出的Hello,World!   javac是编译命令,它把HelloWorld.java编译成HelloWorld.class   java就是解释命令,JVM把HelloWorld.class解释执行.   在这个时候:   1、如果出现Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld   那就是你在环境变量中没有加上那个.(dot) // . 表示为当前路径

    对于环境变量的问题就说到这里,下面我先所说怎么在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.htmlROOT/welcom.jspROOT/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綡elloWorld</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_04CLASSPATH=%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/ApacheSoftware Foundation/Tomcat 5.5CATALINA_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/classesjavac 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成功了。


    最新回复(0)