tomcat容器
tomcat的配置:
①、修改默认端口号:在tomcat安装目录下找到conf/server.xml文件,修改connector标签中的port属性即可,一般修改为80,因为80端口在浏览器访问时可以默认不写
②、配置web应用的主页,在web.xml中添加<welcome-file-list><welcome-file>1.html</welcome-file></welcome-file-list>
③、配置虚拟主机 在conf/server.xml中 server/service/Engine标签内部添加host标签并配置name和appBase属性,appBase是可选属性,用来指定当前主机默认管理的目录。配置完后,需要在DNS服务器中配置主机名和ip地址的映射关系,一般DNS服务器不能修改,可通过hosts文件进行模拟
④、端口占用问题,可以使用shutdown.bat命令关闭服务器,如果还不行,在cmd窗口中,通过netstat -ano命令 查看占用80端口的进程,根据id找到进程,再通过taskkill /pid 进程id 就可以杀死指定进程
需要注意的是:虚拟主机不能直接管理web资源,web-Inf是web应用中的特殊目录,这个目录可以没有,一旦有,必须符合一定的,目录结构,而且放在这个目录中的资源将被保护起来,通过浏览器不能直接访问
servlet
servlet是由sun公司提供的动态web资源开发技术,本质上是一段必须放在Servlet容器中,由容器调用才能执行的java程序。
初识Servlet,可以由记事本开发一个Servlet程序。
步骤如下:
一、创建一个FirstServlet.java文件,在里面像写java程序一样编写FirstServlet类(注意类名必须与该记事本的名字一样)。在该类中实现Servlet接口或者继承Servlet接口的子类,实现service方法,并抛出异常。在方法中写你想输出的东西 比如:response.getWriter().write("time="+new Date() );当然,还需要像写java程序一样在头上写上你的包名package***和进行导包操作。
二、接下来打开你的cmd窗口,编译一下你的FirstServlet类,步骤如下:打开cmd窗口 cd 切换到你的类所在路径,
输入命令如下:
第一步:设置包路径(servlet-api.jar所在路径) set classpath=e:\software\tomcat7.0\lib\servlet-api.jar
第二步:编译该类 javac -d FirstServlet.java
三、把编译好的class文件(包括包路径)放在web应用的classes目录下
四、找到web.xml配置文件,配置servlet对外访问的虚拟路径. 即:(注:两个标签中的servlet-name必须相同)
<servlet>
<servlet-name>名字</servlet-name>
<servlet-class>类路径</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>名字</servlet-name>
<url-pattern>/访问路径</url-pattern>
</servlet-mapping>
servlet继承结构
servlet接口-通用的servlet接口,提供了一个servlet应该具有的功能
|------GenericServlet类:实现了servlet接口,提供其中大部分的方法,但是没有实现service方法,需要开发人员自己实现
|------HttpServlet类,继承GenericServlet,实现service方法,判断请求方式,根据不同请求方式调用不同的do..方法
|------自己定义一个类,继承HttpServlet,覆盖doGet和doPost方法,处理请求。
Servlet生命周期
Servlet在第一次被访问时,tomact服务器就创建了Servlet实例, 创建之后服务器会立即调用init方法进行初始化的操作, 创建之后, Servlet实例会一直驻留在服务器的内存中, 为后续的请求服务. 只要有请求来访问这个Servlet, 服务器就会调用service方法来处理请求, 直到服务器关闭, 或者WEB应用被移出容器, 随着WEB应用的销毁, Servlet实例也会跟着销毁, 在销毁之前服务器会调用destroy方法进行善后的处理.
在web.xml中配置servlet虚拟路径
1、直接写路径
2、用星号匹配符配置一个路径①以斜杠/开头,以斜杠星结尾 ②以星点后缀的形式(哪一个更接近,更精准,哪个起作用)*.后缀优先级永远最低。