我们即将进行最复杂的helloworld的程序建立
为什么我们下载了Tomcat还要引入依赖,有以下几个原因
接着我们现在解释了为什么之后,我们只需要在pom.xml里面增加下面的依赖即可.
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
至于这个依赖是怎么来的
参考我下面的步骤
1.进入maven网站
maven网站链接
分为三个步骤
1.创建webapp目录
2.创建WEB-INF
3.创建一个web.xml
最终目录效果如下:
4.在web.xml加入代码
<!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>Archetype Created Web Application</display-name>
</web-app>
web.xml 是给 tomcat 看的:tomcat 从 webapps 目录中加载 webapp,就是以 web.xml 为依据的
1.创建一个HelloServlet类继承 HttpServlet ,并且重写doGet方法
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
}
当然在编写代码的之前,我要对上述代码展开解析,解释完之后,大家再进入下一个阶段.
具体的解释环节如下:
先来解释这段代码究竟对于Tomcat究竟做了哪些工作.
下面再来看看,这里的Tomcat就是充当服务器的角色.
对Tomcat来说:
2.编写代码
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doGet(req, resp);
//这是在服务器的控制台中,打印孕将串(服务器看的到,客户端看不到)
System.out.println("hello world");
//这是是给 resp 的 body写入hello world字符串.这个内容就会被 HTTP响应返回给浏览器,显示到浏览器页面上
resp.getWriter().write("hello world");
}
}
3.增加注解
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doGet(req, resp);
//这是在服务器的控制台中,打印孕将串(服务器看的到,客户端看不到)
System.out.println("hello world");
//这是是给 resp 的 body写入hello world字符串.这个内容就会被 HTTP响应返回给浏览器,显示到浏览器页面上
resp.getWriter().write("hello world");
}
}
这里加上注释之后,我们到时候就可以运行了.
至于我们为什么打包程序?
不能直接独立运行,而是必须放到Tomcat上运行.(部署)
使用 maven 进行打包. 打开 maven 窗口 (一般在 IDEA 右侧就可以看到 Maven 窗口, 如果看不到的话,
可以通过 菜单 -> View -> Tool Window -> Maven 打开)
然后展开 Lifecycle , 双击 package 即可进行打包.
这里要注意一下,我们打成的包是War包,所以我们还要在pom.xml当中加入这样一行代码
<packaging>war</packaging>
<build>
<finalName>hello_servlet</finalName>
</build>
至于为什么要打war包,原因如下:
部署的操作也非常简单,分几个步骤
1.把打好的war包,复制到tomcat的webapps目录中.
在浏览器输入,http://127.0.0.1:8080/hello_servelt/hello
这里要对这段url进行说明一下
看到了上面的操作之后.这些程序你是不是感觉太过于复杂,其实我们在写一个servelt的程序的时候,上面的七个步骤是必须的,但是其中有俩个步骤是可以简化的.
就是打包和部署操作.
这里给出具体的方案:
访问:
smart tomcat的运行方式和之前拷贝到webapps 中,是存在本质区别的.
smart tomcat其实是使用了Tomcat另外一种运行方式.
在运行Tomcat的时候,通过特定的参数,来指定Tomcat加载某个特定目录中的webapp
String s1=null;
System.out.println(s1.length());
总之,这篇文章对Servlet开发中最基本的几个方面:HelloWorld程序、部署方式和常见问题,进行了较为详细的介绍和总结。掌握这些内容后可以比较顺利地编写一个简单的Servlet Web应用。