1. tomcat解压后目录:
bin:可执行文件(startup.bat shutdown.bat)
conf:配置文件(server.xml)
lib:tomcat依赖的jar文件
log:日志文件(记录出错等信息)
temp:临时文件
webapps:可执行的项目(将我们开发的项目 放入该目录)
work:存放由jsp翻译成的java,以及编辑成的class文件(jsp ->java ->class)
2.配置tomcat
a.配置jdk (必须配置JAVA_HOME)
java_home classPath path
b.配置catalina_home
双击bin/startup.bat启动tomacat,
常见错误: 可能与其他服务的端口号冲突
tomcat端口号默认8080 (此端口号较为常见,容易冲突),建议修改此端口 (8888)
修改端口号:
去配置文件中改 D:\Tomcat\apache-tomcat-8.5.31\conf\server.xml
修改以下配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
3.访问tomcat
http://localhost:8080/
默认访问:
D:\Tomcat\apache-tomcat-8.5.31\webapps\ROOT
如果想访问:
http://localhost:8080/examples/
对应访问:
D:\Tomcat\apache-tomcat-8.5.31\webapps\examples
找到在D:\Tomcat\apache-tomcat-8.5.31\webapps\examples\WEB-INF
的配置文件中web.xml
配置了首先访问的页面,首先是index.html,其次是index.xhtml…依次往下找
index.html
index.xhtml
index.htm
index.jsp
常见状态码:
200:一切正常
300/301: 页面重定向 (跳转)
404:资源不存在
403:权限不足 (如果访问a目录,但是a目录设置 不可见)
500:服务器内部错误(代码有误)
其他编码:积累
新建一个tomcat项目Jspproject
D:\Tomcat\apache-tomcat-8.5.31\webapps\Jspproject
目录下有以下目录结构
WEB-INF
classes: 存放由jsp翻译成的java,以及编译成的最终class文件
lib:此项目需要的jar包
web.xml 配置信息
jsp:在html中嵌套的java代码
在项目/WEB-INF/web.xml中设置 默认的 初始页面
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
4.虚拟路径
a.方式一
将web项目配置到 webapps以外的目录
conf/server.xml中配置
host标签中:
<Context docBase="D:\study\JspProject" path="/JspProject" />
docBase:实际路径
path:虚拟路径 (绝对路径、相对路径【相对于webapps】)
重启
b.方式二
D:\study\apache-tomcat-8.5.30\conf\Catalina\localhost
中新建 “项目名.xml”中新增一行:
<Context docBase="D:\study\JspProject" path="/JspProject" />
5.虚拟主机
通过www.test.com访问本机
a. conf/server.xml
<Engine name="Catalina" defaultHost="www.test.com">
<Host appBase="D:\study\JspProject" name="www.test.com">
<Context docBase="D:\study\JspProject" path="/"/>
</Host>
b.C:\Windows\System32\drivers\etc\host
增加
127.0.0.1 www.test.com
流程:
www.test.com -> host找映射关系 ->server.xml找Engine的defaultHost ->通过"/"映射到D:\study\JspProject
6.JSP执行流程
客户端通过浏览器发出一个请求
http://localhost:8080/Jspproject/index.jsp
服务端响应
客户端第一次访问经历了哪些过程:
服务端将jsp翻译成java,再将java编译成class文件
jsp- java(Servlet文件) -class
D:\study\apache-tomcat-8.5.30\work\Catalina\localhost\JspProject\org\apache\jsp
客户端第二次访问直接访问class文件
如果服务端代码修改了,将会在访问时重新编译翻译
Jsp 和Servlet 可以相互转换
因为第一请求服务端 会有翻译 和编译的过程,因此比较慢; 后续访问 可以直接访问class,因此速度较快。但是 如果 服务端修改了代码,则再次访问时 会重新的翻译、编译。