(2)19.4.3 关于一个简单的 servlet 实例
Hello World 示例代码。
// 导入必需的 java 库 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; // 扩展 HttpServlet 类 public class HelloWorld extends HttpServlet { private String message; public void init() throws ServletException { // 执行必需的初始化 message = "Hello World"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型 response.setContentType("text/html"); // 实际的逻辑是在这里 PrintWriter out = response.getWriter(); out.println("<h1>" + message + "</h1>"); } public void destroy() { // 什么也不做 } }
将上面的保存成一个 HelloWorld.java文件。进行编译之前,需要配置 classpath。
(1)默认情况下,Servlet 应用程序位于路径<Tomcat-installation-directory>/webapps/ROOT 下,且将编译的 HelloWorld.class 类文件放在 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes 中。
[注:]进行(1)之前,先将WEB-INF 文件夹至于 ROOT 之下。
(2)在 web.xml 文件中,创建以下条目:
<web-app>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>
启动Tomcat服务器,在浏览器的地址栏中输入 http://localhost:8080/HelloWorld 。如果一切顺利,会在浏览器中看到 Hello World 。
【注:】在servlet 浏览器访问路径配置时,应该注意的是:
(1)java 类里的注解 -- @WebServlet("/HelloServlet")对应浏览器路径:
http://localhost:8080/TomcatTest/HelloServlet
(2)配置文件(web.xml)里对应的浏览器访问路径:
http://localhost:8080/TomcatTest/TomcatTest/HelloServlet
以上两种配一个就 OK,否则路径重名的话反而会让 tomcat 启动不了。
例如:
修改 web.xml :
<url-pattern>/HelloServlet</url-pattern>
修改后,web.xml 和 java 类的注解,对应路径都是:
http://localhost:8080/TomcatTest/HelloServlet
导致
命名的 servlet[HelloServlet]和 [com.runoob.test.HelloServlet] 都被映射到 URL 模式 [/ HelloServlet] 这是不允许的。
解决方法:将 java 类的注解去掉,或者进入 web.xml 将映射删除就可以。
浙公网安备 33010602011771号