多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## Servlet简介 * Servlet是服务器小应用程序。 * 用来完成B/S架构下,客户端请求的响应处理。 * 平台独立,性能优良,能以线程方式运行。 * Servlet API为Servlet提供了统一的编程接口 * Servlet 一般在容器中运行 * 常见的 Servlet容器: * Tomcat ## 安装tomcat > 请观看上课视频 ## tomcat目录结构 * bin:该目录下存放的是二进制可执行文件 * conf:这是一个非常非常重要的目录,这个目录下有四个最为重要的文件: * server.xml:配置整个服务器信息。例如修改端口号,添加虚拟主机等; * tomcatusers.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了; * web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。 * context.xml:对所有应用的统一配置,通常我们不会去配置它。 * lib:Tomcat的类库,里面是一大堆jar文件。 * logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中。 * temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除! * webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。 * work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的! ## servlet运行原理 ![](https://box.kancloud.cn/73c16c36cbb97af5680e44c89d655b6b_1435x806.gif) ## servlet执行过程和生命周期 ![](https://box.kancloud.cn/d6b1b0f285228c7ad434fdcc70720e06_649x630.png) ## 加载和实例化serlet 1. 如果已配置自动装入选项,则在启动时自动载入。 2. 在服务器启动状态下,客户机首次向Servlet发出请求。 3. 重新装入Servlet时。 ## servlet表单提交例子 ## 服务器内部跳转(请求转发)和重定向(外部跳转) 1. 内部跳转的时候实际上是通过服务器端将请求转发到另外的页面或者servlet中,这个时候跳转到的目标页面或者servlet可以获取到请求对象, 也可以获取到请求中的属性和参数。 2. 外部跳转的时候实际上是第一次请求后,服务器端向客户端发送了一个指令,让客户端再次请求了一次服务器端,这个时候服务器第二次拿到的request对象已经不是第一次请求的request对象了,所以无法获取到第一次请求里的参数和属性。 3. 内部跳转的url地址栏不会发生变化,外部跳转url则会发生变化。 4. 内部跳转无法跳转到工程以外的jsp或者servlet,外部跳转则可以。 ![](https://box.kancloud.cn/e2528c4c1f559bc1b1bb27f6dd4c0334_612x464.png)