在javaweb的学习阶段中,我们主要学习的是Servlet,之后在转接到Jsp,两者结合起来使用。
首先,就简单介绍一下Servlet的部署和运行原理吧。Servlet 是 Server Applet 的缩写,译为“服务器端小程序”,是一种使用 Java 语言来开发动态网站的技术。它是基于 Java 的,几乎可以使用所有的 Java API,Java 能做的事情,Servlet 也能做。编写 Servlet 代码需要遵循 Java 语法,一个 Servlet 程序其实就是一个按照 Servlet 规范编写的 Java 类。Servlet 程序需要先编译成字节码文件(.class
文件),然后再部署到服务器运行。
刚开始学的时候,我们可能会有这样的疑惑,为什么写好的程序要交给服务器去运行呢?而不能直接运行。这是因为我们编写的 Servlet 类没有 main() 函数,不能独立运行,只能作为一个模块被载入到 Servlet 容器,然后由 Servlet 容器来实例化,并调用其中的方法。Servlet容器在整个 HTTP 请求流程中的位置:
流程大概如下:
用户的 HTTP 请求首先到达 Web 服务器,Web 服务器判断该请求是静态资源还是动态资源:如果是静态资源就直接返回,此时相当于用户下载了一个服务器上的文件;如果是动态资源将无法处理,必须将该请求转发给 Servlet 容器。
Servlet 容器接收到请求以后,会根据配置文件(web.xml)找到对应的 Servlet 类,将它加载并实例化,然后调用其中的方法来处理用户请求;处理结束后,Servlet 容器将处理结果再转交给 Web 服务器,由 Web 服务器将处理结果进行封装,以 HTTP 响应的形式发送给最终的用户。
在Servlet的创建中,我们最常见的就是通过继承 HttpServlet 类创建 Servlet,然后重写里面的Service方法。在此之前我们要先导入Servlet相关的jar(javax.servlet)包。然后再在web.xml文件中进行如下配置:
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>net.biancheng.www.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
之后,我们就可以启动Tomcat容器,待容器启动完成后,访问路径 http://localhost:8080/servlet/MyServlet 就可以看到里面的内容。
以上是个人对servlet部署和运行的一点理解。重要内容还有很多,学的不怎么透彻,所以没总结。