Tomcat和Servlet入门小结
Posted lilyen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat和Servlet入门小结相关的知识,希望对你有一定的参考价值。
Tomcat和Servlet入门小结
Tomcat入门
-
启动:
-
-
进入bin目录,双击startup.bat,运行该文件
-
访问浏览器,输入:http://localhost:8080 访问自己;
-
? 输入:http://别人的ip:8080 访问别人(8080为Tomcat的端口号)
-
-
启动时可能遇到的问题:
-
- 黑窗口一闪而过:
*原因:没有正确配置JAVA_HOME变量;
- 启动报错:
*暴力解决:在cmd中输入netstat -ano找到占用端口号的对应进程并杀死
*在Tomcat的configserver.xml下找到
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8445" />
*一般将端口号修改为80(浏览器默认端口号)
? *好处:使用浏览器,在访问时就不用输入端口号了
-
-
关闭:
-
正常关闭:
-
binshutdow.bat
-
ctrl+c
-
-
强制关闭:
*点击启动窗口的 x
-
-
配置:
-
部署项目的方式:
-
直接将项目放到webapps目录下即可。
*项目的访问路径(即保存项目的文件名)就是浏览器访问的虚拟目录
*简化部署:可以将项目打包成一个war包,再将war包放置在webapps目录下。
? *war包会自动解压缩
-
配置confserver.xml文件:
找到
标签体,在里面配置 <Context docBase="C:项目存放的路径" path="/虚拟目录" />
? *优点:不用将项目部署在webapps下了,可以放置在任何位置
? *缺点:需要修改server.xml文件,可能造成破坏
-
在configCatalinalocalhost下创建任意名称的xml文件,在文件中编写
<Context docBase="C:项目存放的位置"
? *虚拟路径就是此xml文件的名称
? *优点:相比于第二种配置方法,可以避免破坏server.xml文件
-
-
静态项目和动态项目:
- 目录结构:
- --项目的根目录(存放静态项目)
- --WEB-INF目录(此目录下的项目不能被浏览器直接访问)
- --web.xml: web项目的核心配置文件
- --classes目录:放置字节码文件的目录
- --lib目录: 放置依赖的jar包
- --WEB-INF目录(此目录下的项目不能被浏览器直接访问)
- --项目的根目录(存放静态项目)
- 目录结构:
-
Servlet入门
-
概念:运行在服务端的小程序
? *Servlet就是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则。
-
Java类对Servlet接口的实现:
-
创建一个JavaEE项目
-
定义一个Java类,实现(implement)Servlet接口
-
复习Servlet接口中的抽象方法(Servlet的生命周期方法)
-
配置Servlet
*在web.xml中进行配置:
<servlet> <servlet-name>自定义名称</servlet-name> <servlet-class>对应类的全类名</servlet-class> </servlet> <servlet-mapping> <servlet-name>自定义的名称</servlet-name> <url-pattern>访问的资源路径</url-pattern> </servlet-mapping>
-
-
Servlet执行原理:
-
当服务器接收到客户端浏览器的请求后,会解析URL路径,访问获取的Servlet的资源路径
-
查找web.xml文件,是否有对应的
标签体内容。 -
如果有,则找到对应的
全类名 -
Tomcat会将字节码文件加载进内存,并且创建对象
-
调用其方法
-
-
Servlet中的生命周期方法
-
init方法:
*在Servlet被创建时执行,并只执行一次。
*Servlet什么时候被执行?
? *默认情况下,第一次被访问时,Servlet被创建
? *可以配置创建Sevlet的时机:
? 在web.xml的
标签中配置 <load-on-startup>负数或正数</load-on-startup>
? *如果是负数,则Servlet在被访问时创建
? *如果时正数,则Servlet在服务器(Tomcat)启动时创建
?
-
service方法:
*每次访问Servlet时,便会别调用一次
-
destory方法:
*Servlet被销毁时执行,并且只执行一次
*只有当服务器正常关闭时,才会执行
*destory方法在Servlet被销毁之前执行,相当于释放资源,而init相当于加载资源
-
-
Servlet 3.0:
-
好处:支持直接配置。可以不需要web.xml了
-
步骤:
-
创建一个JavaEE项目,选择Servlet的版本为3.0以上,可以不创建web.xml
-
定义一个Java类,实现Servlet接口
-
复写方法
-
在类上使用@WebServlet注解,进行配置
*@WebServlet("资源路径")
-
-
以上是关于Tomcat和Servlet入门小结的主要内容,如果未能解决你的问题,请参考以下文章