我们将Hello.class文件保存到Tomcat引擎的classes文件夹中。图7.2和7.3是在不同的web目录下运行servlet的效果。
图7.2 用Web根目录访问servlet图7.3 用friend目录访问7.2.5 带包名的servlet
在写一个servlet的java文件时,可以使用package语句给servlet一个包名。包名可以是一个合法的标识符,也可以是若干个标识符加“.”分割而成,如:
package gping; package tom.jiafei;
程序如果使用了包语句,例如
package tom.jiafei;
那么在classes目录下需有如下的子目录,例如,在
D:\\Tomcat\\jakarta-tomcat-4.0\\classes下再建立如下的目录结构。
\\tom\\jiafei
并将servlet的字节码文件存在该目录中,如图7.4所示。
图7.4 存放带包名的servlet
6
如果servlet有包名,比如,Hello的包名是tom.jiafei,那么调用该servlet的URL是:
http://localhost:8080/web服务目录/servlet/tom.jiafei.Hello
因为起了包名,Hello的全名是tom.jiafei.Hello(就好比大连的全名是:中国.辽宁.大连)。
7.3 通过JSP页面调用servlet
7.3.1 通过表单向servlet提交数据
任何一个Web服务目录下的JSP页面都可以通过表单或超链接访问某个servlet。通过JSP页面访问servlet的好处是,JSP页面可以负责页面的静态信息处理,动态信息处理交给servlet去完成。
在下面的例子中,JSP页面通过表单向servlet提交一个正实数,servlet负责计算这个数的平方根返回给客户。
为了方便地调试servlet,本书中,servlet的字节码文件存放在
D:\\Tomcat\\jakarta-tomcat-4.0\\webapps\\example\\Web-inf\\classes中,那么在JSP页面中调用servlet时,servlet的URL是:
/examples/servlet/servletName
在下面的例子2中,JSP页面通过表单提交一个正数,servlet负责计算这个数的平方根。
例子2
调用servlet的页面(该页面存放在web服务的根目录Root中) givenumber.jsp(效果如图7.5所示)
<%@ page contentType=\
输入一个数,servlet求这个数的平方根: