6.1 部署Servlet
部署就是把Servlet的字节码文件放在适当的地方。• 为了在浏览器上访问Servlet,Servlet的class文件必须放在相应web应用目录的WEB-INF/classes文件夹下。(注意有包时的情形)• 经过上述步骤后,相应的Servlet就可以被调用了。
6.2 请求Servlet
• 对Servlet的访问与对JSP的访问基本相同,可以通过以下3种方式进行:
• 通过在浏览器中直接输入地址访问
http://127.0.0.1:8080/test/hello 或http://localhost:8080/test/hello
通过超链的形式访问
<a href =“http://127.0.0.1:8080/test/hello ”>第一个Servlet</a>
通过表单提交的方式访问
<form method=get action="http://127.0.0.1:8080/test/hello">
6.3 找不到servlet包
如果用户使用手工的方式编译一个Servlet的话,则有可能在编译时会出现以下的错误提示:
• 软件包 javax.servlet 不存在
• 软件包 javax.servlet.http 不存在
• 这两个Servlet的开发包实际上是保存在%TOMCAT_HOME%\lib\servlet-api.jar路径下,但是由于现在使用javac命令编译的时候,是使用的JAVASE环境编译的,但是Servlet本身已经属于JavaEE的应用范畴,所以就出现了找不到开发包的情况,此时,有两种方式:
• 一种是通过classpath指定,在classpath中加入此开发包的路径
• 另外一种方式是将Servlet的开发包保存在%JAVA_HOME%\jdk1.6.0_02\jre\lib\ext目录之中
6.4 Servlet映射的细节
同一个Servlet可以被映射到多个URL上,即多个元素的子元素的设置值可以是同一个Servlet的注册名。l 在Servlet映射到的URL中也可以使用通配符,但是只能有两种固定的格式:一种格式是“.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。
修改web.xml,增加多个映射路径
<servlet-mapping> <!-- 映射路径 --> <servlet-name>hello</servlet-name> <!-- 与servlet相对应--> <url-pattern>/helloServlet</url-pattern> <!-- 页面的映射路径--> </servlet-mapping> <servlet-mapping> <!-- 映射路径 --> <servlet-name>hello</servlet-name> <!-- 与servlet相对应--> <url-pattern>/hello.asp</url-pattern> <!-- 页面的映射路径--> </servlet-mapping> <servlet-mapping> <!-- 映射路径 --> <servlet-name>hello</servlet-name> <!-- 与servlet相对应--> <url-pattern>/hello.jsp</url-pattern> <!-- 页面的映射路径--> </servlet-mapping> <servlet-mapping> <!-- 映射路径 --> <servlet-name>hello</servlet-name> <!-- 与servlet相对应--> <url-pattern>/test/*</url-pattern> <!-- 页面的映射路径--> </servlet-mapping>