这个问题困扰我好几天了,很是郁闷查了资料总是搞不定,第一次接触网络编程,很菜,希望大家不要见笑!因为最多只能送100分,不够再加,问题解决马上结贴。第一个问题,只安装J2SE JDK包是不是就能编译servlet程序?第二个问题,我编译程序一个servlet程序的时候显示如下的错误,但是我编译其他非servlet程序的时候都能都正常运行。错误如下:D:\>javac hello.java
hello.java:2: 软件包 javax.servlet 不存在
import javax.servlet.*;
^
hello.java:3: 软件包 javax.servlet.http 不存在
import javax.servlet.http.*;
^
hello.java:4: 找不到符号
符号: 类 HttpServlet
public class hello extends HttpServlet
^
hello.java:6: 找不到符号
符号: 类 ServletConfig
位置: 类 hello
public void init(ServletConfig config) throws ServletException
^
hello.java:6: 找不到符号
符号: 类 ServletException
位置: 类 hello
public void init(ServletConfig config) throws ServletException
^
hello.java:14: 找不到符号
符号: 类 HttpServletRequest
位置: 类 hello
public void service(HttpServletRequest req,HttpServletResponse resp) throws Serv
letException,IOException
^
hello.java:14: 找不到符号
符号: 类 HttpServletResponse
位置: 类 hello
public void service(HttpServletRequest req,HttpServletResponse resp) throws Serv
letException,IOException
^
hello.java:14: 找不到符号
符号: 类 ServletException
位置: 类 hello
public void service(HttpServletRequest req,HttpServletResponse resp) throws Serv
letException,IOException
^
hello.java:8: 找不到符号
符号: 变量 super
位置: 类 hello
super.init(config);
^
hello.java:12: 找不到符号
符号: 变量 super
位置: 类 hello
super.destroy();
^
10 错误D:\>在下先谢谢了!希望高手帮帮忙1
hello.java:2: 软件包 javax.servlet 不存在
import javax.servlet.*;
^
hello.java:3: 软件包 javax.servlet.http 不存在
import javax.servlet.http.*;
^
hello.java:4: 找不到符号
符号: 类 HttpServlet
public class hello extends HttpServlet
^
hello.java:6: 找不到符号
符号: 类 ServletConfig
位置: 类 hello
public void init(ServletConfig config) throws ServletException
^
hello.java:6: 找不到符号
符号: 类 ServletException
位置: 类 hello
public void init(ServletConfig config) throws ServletException
^
hello.java:14: 找不到符号
符号: 类 HttpServletRequest
位置: 类 hello
public void service(HttpServletRequest req,HttpServletResponse resp) throws Serv
letException,IOException
^
hello.java:14: 找不到符号
符号: 类 HttpServletResponse
位置: 类 hello
public void service(HttpServletRequest req,HttpServletResponse resp) throws Serv
letException,IOException
^
hello.java:14: 找不到符号
符号: 类 ServletException
位置: 类 hello
public void service(HttpServletRequest req,HttpServletResponse resp) throws Serv
letException,IOException
^
hello.java:8: 找不到符号
符号: 变量 super
位置: 类 hello
super.init(config);
^
hello.java:12: 找不到符号
符号: 变量 super
位置: 类 hello
super.destroy();
^
10 错误D:\>在下先谢谢了!希望高手帮帮忙1
2。需要把servlet包添加到classpath。tomcat下的common文件夹下有,楼主找一下
tomcat的部署,一般可以直接把工程生成的jsp、class、jar等考到tomcat下的webapps文件夹下
目录结构如下:
webapps\projectName\WEB-INF\classes\*.class(生成的class)
\lib\*.jar(需要的三方jar)
\web.xml,很重要的一个配置文件,没有他就不能通过web访问,servlet也识别不到,不过楼主刚开始练习的话可以在tomcat自带的例子那随便考一个web-inf文件夹,放在projectName下,在projectName下放个jsp或html文件访问一下,一般是可以访问的 ,至于servlet,需要在web.xml中进行配置 ,格式如下:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>DateServlet</servlet-name>
<servlet-class>basic.DateServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>DateServlet</servlet-name>
<url-pattern>/servlet/DateServlet</url-pattern>
</servlet-mapping>
JAVA_HOME = <JDK安装目录>
TOMCAT_HOME = <Tomcat根目录>
在Path最后附加:
Path = ......;%JAVA_HOME%\bin如果使用linux,请用export设置环境变量。然后打开控制台窗口,输入javac,如果能够运行,说明能找到JDK的编译器,输入java -version,如果显示1.4.x_xx则配置正确,否则检查是否安装了低版本的JDK(比如1.3版本),如果有低版本的JDK,把它从Path中移除即可。[启动和关闭Tomcat]打开目录%TOMCAT_HOME%/bin,运行startup.bat(linux下是startup.sh),稍等片刻,直到出现
信息: Server startup in XXXXX ms
表示启动成功!要关闭Tomcat,最好不要直接关掉控制台窗口,运行%TOMCAT_HOME%\bin\shutdown.bat(linux下是shutdown.sh)。[第一个JSP程序]运行在Tomcat的Web程序全部放在%TOMCAT_HOME%/webapps下,每个应用单独一个目录,我们开始写第一个"Hello, world"JSP页面。首先,我们在%TOMCAT_HOME%\webapps下新建一个hello目录,作为整个Web应用程序的根目录,然后在hello目录下新建hello.jsp,用任何文本编辑器输入以下内容:
<% out.println("Hello, world."); %>然后启动Tomcat,打开浏览器,输入http://localhost:8080/hello/hello.jsp,稍等片刻,浏览器显示“Hello, world.”我们的第一个JSP运行成功![Web开发基础]J2EE的Web应用程序有标准的格式,我们先创建如下结构的目录(请严格区分大小写):
hello
|
+- WEB-INF
|
+- classes
|
+- lib
|
+- web.xml所有需要的class文件均以WEB-INF/classes/为根目录按包名存放,所有的jar文件全部放在WEB-INF/lib下,Web服务器(比如Tomcat)会自动把classes和lib下的所有jar文件动态添加到CLASSPATH中,其中classes目录优先级高,如果classes和lib中某个jar的class全名相同,则只会找到classes下的文件。WEB-INF/web.xml是标准配置文件,负责注册Servlet,Filter及其它用到的资源。在我们的hello应用中,因为没有web.xml,Tomcat会使用缺省的配置文件(什么也不配置)。一般说来,自己写的class包括servlets,filter,javaBean等编译后放在classes目录下,用到的第三方jar(如struts.jar)放在lib下。JSP文件可放在根目录下的任意位置,但是位置不同会影响URL的格式。以上面的hello应用为例,我们指定hello/hello.jsp,则URL为http://localhost:8080/hello/hello.jsp,若是放在hello/admin/hello.jsp,则相应的URL变为http://localhost:8080/hello/admin/hello.jsp,若是放在WEB-INF下,则用户不可直接访问此JSP文件,只能通过RequestDispatch间接访问,此方法可向用户屏蔽真实的URL,在struts等Web框架中被广泛使用。[发布Web应用程序]
发布Web应用程序非常简单,直接使用jar命令将整个hello目录打包,命名为xxx.war,然后复制到另一台计算机的%TOMCAT_HOME%/webapps/下(或者别的Web服务器如Resin,WebLogic也可),启动服务器,它会自动找到这个war文件并解压安装。
<Host name="localhost" appBase="D:/webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">appBase改成自己的目录,默认是webapps,这里改成了D:/webapps
可能不同版本的tomcat配置有些不一样,我这个是5.5.11,跟4.x版本的差别好像有点大的,不过大体是差不多的
http://apache.justdn.org/jakarta/tomcat-5/v5.5.12-alpha/bin/apache-tomcat-5.5.12-admin.zip下载这个 Tomcat 管理程序, 你可以看看你执行每一次配置操作然后 Commit Changes 比较变化,
比较过程可以借助 CVS / SVN 等版本控制软件来做,这样你可以看明白 Tomcat 每一个配置是什么用途, 如果需要下载版本控制系统软件的 URL , 请看:
http://blog.csdn.net/humanity/archive/2005/09/12/478533.aspx这个 Tomcat Admin 默认需要 登录用户具有 Admin 角色 ( 他的 web.xml 中配置了). 按照 .zip 中的 readme.txt 放置解压后的东西到相应的目录。