一、Tomcat目录结构

bin目录 负责服务器启动starup和关闭shutdown。 注意:1)尾缀为.bat的是windows使用;
2)尾缀为.sh的是linux系统使用。
webapps目录 负责存放服务器需要启动的web项目。 /
conf目录 负责存放服务器的配置信息。 重点掌握:servlet.xml和web.xml
lib目录 负责存放Tomcat自身依赖的jar包。 /
logs目录 负责存放日志文件 /
temp目录 负责存放一些临时文件。 /
work目录 负责存放.jsp文件生成的.java和.class文件。 /

二、访问路径

格式:服务器地址:端口号/根目录名(新建文件夹名称)/url-pattern

1、服务器地址

(1)本机:localhost或者127.0.0.1;
(2)访问局域网的服务器:局域网的ip地址。

2、端口号

(1)可使用的端口号范围:0-65535;
(2)系统默认保留:0-1024;
(3)http协议默认走的端口号:80.
(4)修改端口号:在servlet.xml中找到如下标签,然后修改port,注意避让默认端口。

3、根目录名(新建文件夹名称)

推荐使用纯字母,或者是字母加数字。

4、url-pattern配置规则

注意:必须“/”打头

单层:/xxx /
多层级:/xxx/yyy /
带尾缀:/xxx.yyy /
可配置:/xxx/ /
加尾缀:.xxx 注意:此种配法前面不能加/

三、发布项目的两种方式

1、复制项目到服务器

将要发布的项目的webroot下的内容复制到服务器webapps新建的目录中。

2、配置servlet.xml的标签

增加如下标签:

(1)path:为项目路径,一般为要发布的项目的名称,相当于第一种方式的新建文件夹名称。
(2)docBase:项目放置的位置,可以为相对路径,也可以为绝对路径,为“/”时表示放在服务器webapps下。

四、servlet对象相关知识

生命周期

(1)初始化

默认是第一次调用servlet的时候初始化对象,并且只初始化一次,说明servlet对象时单例的。

(2)运行的流程

  1. 浏览器发出的请求默认是调用公共的service方法,公共的service方法将参数进行强转后调用受保护的service方法,受保护的service方法会根据请求的方式调用doGet()或者doPost(),如果子类没有重写这两个方法,会出现状态码405

(3)销毁

   服务器关闭的时候销毁已初始化的servlet。<br />**注意:load-on-starup标签可以设置在服务器启动的时候立即初始化servlet对象。**<br />具体流程:在web.xml文件的<servlet>标签下添加<load-on-starup>num</load-on-starup>标签。<br />标签中的num为整数:<br />(1)为负数、不写/或者相同的时,加载顺序任意;<br />(2)为0 和正数时,数字越小优先级越高,越先加载。

五、HttpServletRequest对象

1、获取请求行的方法

(1)getMothod():获取请求方式(get或者post);
(2)getContentPath():获取根目录;为:/根目录
(3)getRequestURL():获取?之前的部分;
(4)getRequestURI():获取端口号之后,?之前的部分;为:/xxxxx
(5)getScheme():获取协议名称;
(6)geyQueryString():获取?后面的部分;
(7)getServerName():获取域名,若为本机则为localhost或者127.0.0.1;
(8)getServerPort():获取端口号;

2、获取请求头的方法

getRequestHeader(键名);
注意:键名不区分大小写。

3、获取网络信息的方法

(1)获取服务器信息

   1)getLocalAddr():获取服务器地址;<br />       2)getLocalPort():获取服务器端口号;

(2)获取客户端信息

   1)getRemoteAddr():获取客户端地址;<br />       2)getRemotePort():获取客户端端口号。

4、获取请求实体(表单参数)

(1)getParameter(键名):获取单键单值,返回String;
注意:
1)获取的值没有键,返回null;
2)获取有键没有值的,返回空字符串;
(2)getParameterValues(键名):获取同键不同值,一般为复选框的值,返回String[];
(3)getParameterNames():获取表单参数的键集合,返回枚举集合:Enumeration
遍历Enumeration集合:
while(集合对象.hasMoreElements()){Object 变量名 = 集合对象.next();}

六、HttpServletResponse对象

1、操作响应头

语法:response.setHeader(键,值);

(1)设置页面编码

   response.setHeader(“content-type”,“text/html ; charset=服务器编码”);<br />      ** 注意:设置页面编码必须放在使用response对象之前,一般放在最前面。**

(2)刷新页面

   response.setHeader(“refresh()”;“秒数;url=地址”);<br />     **  注意:表示指定时间后刷新到指定地址,(url=地址)不写时表示刷新本页面。**

2、操作响应实体

(1)在页面输出字符串

   获取输出流:out = response.getWriter();<br />       输出:out.write();

(2)在页面输出流信息

   获取输出流:out = response.getOutputStream();<br />输出:out.write()。