Servlet入门
web相关概念
-
软件架构
C/S
B/S -
资源分类
1. 静态资源, 所有用户访问的结果都是一样的 静态资源可以直接被浏览器解析 如 html, css, JavaScript 2. 动态资源 每个用户访问相同的资源, 得到的结果可能不一样 动态资源被访问后, 需要先转换为静态资源, 再返回给浏览器 如 servlet/jsp, php, asp
-
网络通信三要素
IP 电子设备(计算机)在网络中的唯一标识 端口 应用程序在计算机中的唯一标识, 0-65536, 尽量不要使用1024以内的端口(可能已被操作系统占用) 传输协议 规定了信息传输的规则 TCP 安全协议, 三次握手, 速度慢 UDP 不安全协议, 速度快
web服务器软件
- 服务器: 安装了服务器软件的计算机
- 服务器软件: 接收用户的请求, 处理请求, 做出响应
- web服务器软件: 接收用户的请求, 处理请求, 做出响应
在web服务器软件中, 可以部署web项目, 让用户通过浏览器来访问这些项目
常见的java相关的web服务器软件
webLogic
oracle公司产品, 大型的JavaEE服务器, 支持所有的JavaEE规范, 收费
(JavaEE: Java语言在企业级开发技术中使用的技术规范的综合, 一共规定了13项大的规范)
webSphere
IBM公司产品, 大型的JavaEE服务器, 支持所有的JavaEE规范, 收费
JBOSS
JBOSS公司产品, 大型的JavaEE服务器, 支持所有的JavaEE规范, 收费
Tomcat
Apache基金组织产品, 中小型JavaEE服务器, 仅仅支持少量的JavaEE规范 servelet/jsp, 开元, 免费
Tomcat入门
文件夹目录结构
bin 可执行文件
conf 配置文件
lib 依赖jar包
logs 日志文件
temp 临时文件
webapps 存放web项目, 重要
ROOT 软件自带文件
work 存放运行时的数据
启动
windows: bin/startup.bat
linux: bin/startup.sh
windows下双击startup.bat闪退问题:
重新下载Tomcat, 覆盖原有文件
解决windows下Tomcat启动后中文乱码问题:
修改Tomcat bin目录下startup.bat文件
将call “%EXECUTABLE%” start %CMD_LINE_ARGS% 改为 call “%EXECUTABLE%” run %CMD_LINE_ARGS%
通过浏览器访问Tomcat自带项目
浏览器中输入:
http://127.0.0.1:8080
或者输入:
localhost:8080
如果出现一只猫, 证明Tomcat安装启动成功
cmd窗口输入ipconfig, 查看本机ipv4地址,
在浏览器中输入http:// + 地址 + :8080, 也可以访问当前的Tomcat页面
可能遇到的问题:
1. 黑窗口一闪而过
原因: 没有正确配置JAVA_HOME
解决: 正确配置JAVA_HOME, 在计算机->右键->属性->高级系统设置->环境变量中添加JAVA_HOME配置
2. 启动报错
解决
1. 暴力方案: 找到占用8080端口的进程, 杀死该进程
cmd->netstat -ano->找到
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 716(占用8080端口的进程对应的PID)
任务管理器->进程->右键 名称 列->勾上PID->查找占用8080端口的进程PID->右键结束进程
2. 温柔方案: 修改自身的端口号
config/server.xml->找到
<Connector port="8080" protocol="HTTP/1.1"
->修改8080为其他数字
config文件中还有其他端口号定义, 如果该端口被占用也需要修改
一般会将Tomcat的默认端口号修改为80
80端口号是http协议的默认端口号
好处: 在访问时不用输入端口号
基本上所有的网站默认端口号都是80
关闭
1. 正常关闭
1. 双击打开 bin/shutdown.bat 关闭
2. 在Tmocat启动控制界面按 control+C 关闭
2. 强制关闭
直接关闭Tomcat启动控制界面窗口
配置
部署项目的方式
1. 直接部署方式一
1. 直接将项目放到webapps目录下
2. 浏览器访问http://127.0.0.1:8080/"项目目录"
或者访问http://localhost:8080/"项目目录"
或者访问http://"ipv4的ip地址":8080/"项目目录"
如果config/server.xml中配置
<Connector port="80" protocol="HTTP/1.1"
则访问http://127.0.0.1:80/"项目目录"
或者访问http://127.0.0.1/"项目目录"
例如: 将hello/hello.html放到webapps目录下, 设置Connnectror port="8080", 浏览器访问http://localhost:8080/hello/hello.html
4. 相关概念
/hello 项目的访问路径 ->又叫做: 虚拟目录
hello.html 项目的资源名称
5. 简化部署
将项目文件打包为war包, 放在webapps下, 这样可以只把一个文件整体复制过去, 效率高
war包会自动解压缩
实例: 将hello/hello.html压缩为zip文件, 修改后缀为war, 放到webapps下, Tomcat自动生成hello/hello/hello.html, 浏览器访问
http://127.0.0.1:8080/hello/hello/hello.html
注意目录与之前不同
删除项目时只需要删除war包, Tomcat会自动删除生成的项目文件
缺点: 需要把项目资源文件拷贝进相应的目录, 麻烦
2. 部署项目方式二
1. 配置 config/conf/server.xml文件
在<Host>标签体中配置
<Context docBase="D:\hello" path="/hello" />
docBase: 项目在文件夹存放的路径
path: 虚拟路径
相当于用在浏览器访问时用 path 中的值替换 docBase 中的值
2. 将项目文件放在相应目录下
D:/hello/hello.html
3. 浏览器访问
http://localhost:8080/hehe/hello.html
缺点: 不安全, 可能会导致其他项目错乱
3. 部署项目方式三
1. 在conf\Catalina\localhost目录下创建任意名称的xml文件,
在文件中编写
<Context docBase="D:\hello" />
例如, 创建 bbb.xml, 编写<Context docBase="D:\hello" />
xml文件的名称 即为 虚拟目录
(相当于配置 "bbb"="D:\hello")
2. 项目文件放在相应目录下
D:/hello/hello.html
3. 浏览器访问
http://localhost:8080/bbb/hello.html
实际开发中最常使用此种方式, 可以任意更改conf\Catalina\localhost目录下xml文件的名称, 即可修改访问地址, 也可以在资源不想别访问到时将xml后缀修改为其他值, 例如 bbb.xml -> bbb.xml_bak
静态项目和动态项目
目录结构
Java动态项目的目录结构
-- 项目根目录
-- WEB-INF目录
-- web.xml: web项目的核心配置文件
-- classes目录: 放置字节码文件的目录
-- lib目录: 放置依赖的jar包
Tomcat集成到IDEA中
将Tomcat集成到IDEA中, 并且创建JavaEE项目, 部署项目
IDEA -> run ->Edit Configurations -> Defaults(Template) -> Tomcat -> Local -> 右边Configure -> 配置TomcatHome 安装目录
File -> new -> moudle -> Java Enterprise -> 选择Java版本和Tomcat版本 -> 下面框中勾选Web Application -> 最下方选择版本 Version -> 勾选 Create web.xml
Tomcat热部署设置: 右上方 Edit Configurations -> On Update action -> Update Resources -> On Frame deactivation -> Update Resources
不选Update classes and Resources 原因: 之后java代码修改较频繁, 频繁更新影响性能