javaee相关基础
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服务器软件
安装:解压压缩包即可
- 安装目录里不要有中文
卸载:删除就行
启动:
去目录下找bin目录下找startup.exe
可能遇到的问题
- 黑窗口一闪而过
原因没有正确配置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启动”
javaee相关基础的更多相关文章
- 添物不花钱学JavaEE(基础篇)-综述
JavaEE由一堆基础标准组成.JavaEE开发一般需要如下工具和掌握如下内容: Java环境 Eclipse或其他开发工具 Tomcat容器或类似软件 Jsp/Servlet/Web/JDBC的掌握 ...
- JavaEE开发基础
1 JavaEE简介 Java平台有三个版本,分别是JavaSE(Java Platform, Standard Edition),JavaEE(Java Platform, Enterprise E ...
- iOS蓝牙开发(二)蓝牙相关基础知识
原文链接: http://liuyanwei.jumppo.com/2015/07/17/ios-BLE-1.html iOS蓝牙开发(一)蓝牙相关基础知识: 蓝牙常见名称和缩写 MFI ====== ...
- Linux 相关基础笔记
html,body { } .CodeMirror { height: auto } .CodeMirror-scroll { } .CodeMirror-lines { padding: 4px 0 ...
- linux设备驱动归纳总结(二):模块的相关基础概念【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-59415.html linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10 ...
- linux设备驱动归纳总结(一)内核的相关基础概念【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-59413.html linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxx ...
- 深入理解mysql之BDB系列(1)---BDB相关基础知识
深入理解mysql之BDB系列(1) ---BDB相关基础知识 作者:杨万富 一:BDB体系结构 1.1.BDB体系结构 BDB总体的体系结构如图1.1所看到的,包括五个子系统(见图1.1 ...
- JavaEE XML 基础知识
JavaEE XML 基础知识 @author ixenos 1. XML开头都需要一个声明 <?和?>表明这是一个处理指令 <?xml version=”1.0” encod ...
- JAVAEE规范基础知识
JavaEE规范基础知识 本人博客文章网址:https://www.peretang.com/basic-knowledge-of-javaee-standard/ JavaEE简介 JavaEE,J ...
随机推荐
- 31.Squid缓存代理服务器应用
Squid缓存代理服务器应用 Squid安装介绍 web缓存的工作机制 缓存网页对象,减少重复请求 squid 主要提供缓存加速.应用层过滤控制的功能. 工作机制 代替客户机问网站请求数据,从而可以隐 ...
- Vmware-Centos7-NAT 网络配置
首先一句话总结 NAT模式下,将VMware Network Adapter VMnet8的IP改为与虚拟机IP同一网段即可. 操作步骤 1. 打开虚拟网络编辑器 2. 配置NAT 选择NAT模式,取 ...
- React与Koa一起打造一个仿稀土掘金全栈个人博客(技术篇)
本篇文章将分为前台角度与后台角度来分析我是怎么开发的.前台角度主要资源 react.js ant Design for-editor axios craco-less immutable react- ...
- 03 转换css元素的类别
03 转换css元素的类别 通过设置display属性 属性 作用 block 块级 inline 行内 inline-block 行内块级 接来下 就跟着小demo来学习吧! 不懂可以看看!!!什么 ...
- Tomcat深入浅出——Session与Cookie(四)
一.Cookie 1.1 Cookie概念 Cookie:有时也用其复数形式 Cookies.类型为"小型文本文件",是某些网站为了辨别用户身份,进行Session跟踪而储存在用户 ...
- Java 插入公式到PPT幻灯片
PowerPoint幻灯片中可插入公式,用于在幻灯片放映时演示相关内容的论证.推算的依据,能有效地为演讲者提供论述的数据支撑.通过后端程序代码,我们可借助特定的工具来实现在幻灯片中的插入公式,本文,将 ...
- shell查询prometheus数据
#shell查询prometheus数据 shell使用curl调用HTTP API执行PromQL /api/v1/query查询某一时刻的数据 查询条件PromSQL复杂时, 传入接口/api/v ...
- [HNOI2009]【一本通提高组合数学】有趣的数列
[HNOI2009]有趣的数列 题目描述 我们称一个长度为 2 n 2n 2n 的数列是有趣的,当且仅当该数列满足以下三个条件: 它是从 1 ∼ 2 n 1 \sim 2n 1∼2n 共 2 n 2n ...
- 算法竞赛进阶指南 0x50 总论
目录 AcWing895. 最长上升子序列 方法一 方法二 当询问最长子序列是哪些的时候 896. 最长上升子序列 II 思路 O(NlogN)做法:贪心+二分 代码 AcWing\897. 最长公共 ...
- Minimax 社论
目录 题面 题解 代码 Reference 题面 LOJ #2537 / 洛谷 P5298 「PKUWC2018」Minimax 一棵有根二叉树 \(\mathcal T\) . 定义结点 \(x\) ...