一、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)运行的流程
浏览器发出的请求默认是调用公共的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、操作响应头
(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()。