2020-2-28 java 学习 开始学习javaee了 瞎跳着看
今日内容
-
web相关概念
-
web服务器软件:Tomcat
-
Servlet入门学习
web概念
-
软件架构
- C/S:客户端/服务器端
- B/S:浏览器端/服务器端
-
资源分类
- 静态资源:html css js
- 动态资源:servlet/jsp,php,asp 要先转换成静态资源 然后返回给浏览器 响应
-
网络通信三要素
-
IP:电子设备(计算机)在网络中的唯一标识
-
端口:应用程序在计算机中的唯一标识。0-65536
-
传输协议:规定了数据通信的规则
-
tcp:安全协议,三次握手,速度稍慢
-
udp:不安全协议。速度快
-
-
web服务器软件
-
服务器:就是安装服务器软件的计算机
-
服务器软件:接收用户的请求,处理请求,做出响应
-
WEB服务器软件:接收用户的请求,处理请求,做出响应
- 在web服务器软件中,可以部署web项目让用户通过浏览器来访问 这些项目
- 也叫web容器
-
常见的java相关的Web服务器软件:
- webLogic:oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的
- webSphere
- JBoSS
- Tomcat:Apacha基金组织,中小型javaee服务器,仅仅支持少量的javaee规范serlet/jsp 免费!!
-
JavaEE:java语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范
-
Tomcat:web服务器软件
-
下载:https://tomcat.apache.org/download-80.cgi
-
安装:解压压缩包即可
- 安装目录里不要有中文
-
卸载:删除就行
-
启动:
-
去目录下找bin目录下找startup.exe
-
http://localhost:8080/
-
可能遇到的问题
- 黑窗口一闪而过
-
原因没有正确配置JAVA_PATH的环境变量
-
解决方案:正确配置
-
启动报错:
-
找到占用的端口号,并且找到对应的进程杀死改进程
-
修改自身的端口号config目录下server.xml http协议默认的端口号是80
-
-
-
关闭:
- 正常 关闭:保存该保存的东西ctrl+c
- 强制关闭:直接点x
-
配置:
-
部署项目的方式
-
直接将项目放到webapps目录下即可
-
简化部署:将项目打包成war包 放到webapps下 会自动解压
-
去config/server.xml里面改虚拟路径
在标签中配置
docBase:项目存放的路径
-
在conf\catelina\localhost创建任意的xml文件
写入内容:
-
-
-
静态项目与动态项目的目录结构
- java动态项目的目录结构
--项目的根目录
--WEB-INF目录
--web.xml:web项目的核心配置文件
--classed目录:放置字节码文件的目录
--lib目录:放置依赖的jar包
-
-
将Tomcat集成到IDEA中 并创建JavaEE的项目,部署项目
servlet: server applet
-
概念:Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则
-
将来我们自定义一个类,实现Servlet接口复写方法
-
快速入门:
-
创建一个JavaEE项目
-
定义一个类实现servlet接口
-
public class ServletDemo01 implements Servlet
-
-
实现接口中的方法
-
配置一下Servlet
-
在WEB-INF/web.xml中配置
<!--配置Servlet --> <servlet> <servlet-name>demo1</servlet-name> <servlet-class>cn.lsl.web.serlet.ServletDemo01</servlet-class> </servlet> <servlet-mapping> <servlet-name>demo1</servlet-name> <url-pattern>/demo1</url-pattern> </servlet-mapping>
-
访问http://localhost:8080/demo1
-
-
-
servlet执行原理:
public class ServletDemo01 implements Servlet { //提供服务的方法 @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("hello,servlet"); } }
-
当服务器接收到客户端浏览器的请求之后,会解析请求URL路径,获取访问的Servlet的资源路径
-
查找web.xml文件,是否有对应的标签体的内容
-
如果有则在找到对应的全类名
-
tomcat会将字节码文件加载进内存,并且创建其对象
-
调用其方法
-
servlet的生命周期
-
被创建:init方法 执行一次
在标签下配置
<!--指定Servlet的创建时机 1.第一次被访问时,创建 *<load-on-startup>的值为负数 2.服务器启动时,创建 *<load-on-startup>的值为0或正整数 -->
- servlet的init方法只执行一次,说明一个servlet在内存中只存在一个对象,servlet时单例的
- 多个用户访问时,可能存在线程问题
- 解决:尽量不要在servlet中定义成员变量。即使定义了成员变量也不要对其修改。
-
提供服务:service方法 执行多次
每次访问Servlet时,Servlet方法都会被调用一次
-
被销毁:destroy方法 执行一次
destroy方法在Servlet被销毁之前执行,用于释放资源
-
-
servlet3.0:
-
好处:
- 支持注解配置,可以不需要web.xml了
-
步骤:
-
创建JavaEE项目选择Servlet版本3.0以上,可以不创建web.xml
-
定义一个类,实现Servlet接口
-
复写方法
-
在类上使用@webServlet注解,进行配置
@WebServlet("/demo2")//资源路径 public class SerletDemo01 implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { }
-
IDEA与Tomcat相关配置
-
IDEA会为每一个tomcat部署的项目单独建立一份配置文件
Using CATALINA_BASE: "C:\Users\李世林\.IntelliJIdea2017.3\system\tomcat\_BASIC_code"
-
工作空间项目 和 tomcat部署的web项目
- tomcat真正访问的是"tomcat部署的web项目","tomcat部署的web项目"对应着“工作空间项目”的web目录下的所有资源
- WEB-INF目录下不能被浏览器直接访问
- 断点调试,使用“小虫子debug启动”