Servlet与JSP
1.B/S模式执行流程
- 用户在浏览器中输入网址域名
- 浏览器根据网址,在DNS服务中查询对应的服务器ip地址119.75.23.12
DNS:域名解析服务 - 浏览器向服务器发送一个HTTP数据包(请求)
- 服务器主机中安装了WEB服务器程序,用于接收来自浏览器发来的数据
- WEB服务器程序根据数据自动生成HTML代码
- 服务器主机将HTML文本送回至浏览器(响应)
- 浏览器解释HTML生成页面
2.Tomcat8介绍
目录结构:
- 说明性文档,不参与tomcat运行
- bin目录:保留所有启动文件
.bat结尾:Windows平台
.sh:Linux平台
.jar Tomcat提供的不同场景下的可执行文件 - conf目录:配置文件
核心配置文件:server.xml - lib目录:tomcat所依赖的第三方组件包,运行时会加载
- logs目录:tomcat启动/运行过程中的日志数据
- temp临时目录:tomcat处理运行过程中产生的临时文件,会定时清理
- webapps:用来存放自己开发的web应用程序
- work: 保存JSP翻译之后的源代码,以及编译后的字节码文件,JSP被淘汰了,现在通常为空
运行要求
前置条件:安装JDK1.8以上,配置环境变量JAVA_HOME
bin目录下:startup.bat启动文件
启动后若出现乱码(如图),是因为字节流解码为字符串时,使用的字符集不同。
window默认GBK,tomcat默认UTF-8
调整方法:conf目录下logging.properties文件用记事本打开
java.util.logging.ConsoleHandler.encoding = UTF-8改为GBK,保存重启即可
Tomcat默认占用本机网络端口:8080
浏览器输入【本机IP.8080】或者【localhost.8080】即可访问(localhost在windows中默认代表本机)
在server.xml中可以更改端口号
shutdown.bat命令关闭tomcat
3. 在IDEA创建Java Web工程
1)创建Maven Web工程
a) Maven的设计没有包含Web,故应该在main目录下创建webapp目录,保存CSS/JS这些WEB相关的资源
b) File>Project Structure>Modules>点击+号按钮>Web模块,增加Web支持>右侧修改Web描述符,以调整web.xml在当前工程中所存储的路径
修改为:工程名\src\main\webapp\WEB-INF\web.xml 版本选则与当前tomcat版本相符的Servlet Spec tomcat.apache.org/whichversion.html tomcat8 === servlet3.1
c) 修改Web Resource Directories文件资源目录,调整为webapp目录,映射路径保持/不用改变
d) Create Artifact设置Web应用的启动方式:
Output directory保存**最终运行的Web应用目录** Output Layout说明最终运行时的资源:资源/java编译后的字节码
OK后webapp目录产生蓝点表示成功,并自动创建好WEB-INF目录
2)将IDEA与tomcat进行绑定
a. 右上角Add Configuration>Template > Tomcat Server > Locat(本地安装的) Remote(远程安装的)
b. Application server 选择哪个Tomcat来运行Web server,Configure选择Tomcat Home的安装目录,IDEA自动识别版本,下面时Tomcat运行时相关的设置
c. Deployment 代表Web应用的部署:+ > 确保出现项目名:Web exploded下方Application context 应用程序上下文:Web应用程序访问的前缀 是一个古老的概念,为区分一个Tomcat下多个Web应用
d. 再次右上角Add Configuration,> + >找到Tomcat > OK
e. 此时右上角出现Tomcat,底部Services出现Web启动功能选项面板,Debug运行对工程编译&发布
f. 产生运行的out目录
localhost.8080/上下文/index.htmlTomcat与Servlet关系:
Servlet不能独立运行,必须包含在Tomcat中。Tomcat加载运行的是out/artifact/目录下的标准WEB应用结构 = 字节码 + 资源。