【Java EE】Day13 Web概念回顾、Tomcat、Servlet
一、Web相关概念的回顾
1、软件架构
- C/S
- B/S
2、资源分类
- 静态资源
- 所有用户访问得到相同结果
- 三剑客
- 浏览器通过静态解析引擎将从服务器接收到的静态资源显示到页面上
- 动态资源
- 不同用户访问得到的结果不同
- jsp/servlet、php、asp
- 访问时,会先转换为静态资源,再被浏览器解析
3、网络通信三要素
- IP:计算机在网络中的唯一标识
- 端口号:应用程序在计算机中的唯一标识,建议>1024-65536
- 传输协议:定义了数据通信的规则
- TCP:三次握手
- UDP:不安全广播,可能会丢失数据
二、Web服务器软件
1、基本概念
- 服务器:安装了服务器软件的计算机
- 服务器软件:接收请求、处理请求、做出响应
- web服务器软件:同上,但由浏览器访问,也被称为web容器
- webLogic:Oracle公司(Java,Oracle,MySQL),大型的JavaEE服务器,支持所有的JavaEE规范,收费的
- JavaSE--Java基础版(Java Platform,Standard Edition)
- JavaEE--Java企业版,Java语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范
- JavaME--Java迷你版
- webSphere:IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的
- JBOSS:JBOSS公司,大型的JavaEE服务器,支持所有的JavaEE规范,使用免费,文档和服务收费
- Tomcat:Apache基金组织,做出来的产品开源免费,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范(jsp/servlet)。开源的,免费的
- webLogic:Oracle公司(Java,Oracle,MySQL),大型的JavaEE服务器,支持所有的JavaEE规范,收费的
2、Tomcat
- 下载
- 安装
- 卸载:删除目录
- 启动
- windows运行start.bat
- linux运行start.bash
- 访问:默认端口8080
- 一闪而过:未配置好jdk
- 端口占用:netstat -ano 寻找pid
- 修改端口:conf/server.xml
- 关闭:
- 正常关闭
- shutdown.bat
- ctrl+c
- 强制关闭:点×
- 正常关闭
- 部署:
- 直接拷贝到webapp下
- 配置conf/server.xml,修改host中的docBase属性
- Catalina\localhost中创建一个xml文件,同样配置<Context docBase……/>
三、Serlvet
1、概述
- Sever Applet:A servlet is a small Java program that runs within a Web server.
- 实际上是一个接口,定义了Java类访问时被tomcat识别的规则
- 需要:定义Servlet接口的实现类,重写方法
2、快速入门
- 创建JavaEE项目
- 编写Servlet实现类
- 实现接口抽象方法
- 在web.xml中进行配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!--配置Servlet-->
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>cn.liujinhui.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping> </web-app>
Run--Edit---tomcat-deployment---路径改为/项目名,这样便于管理
3、执行原理
- 当服务器接收到客户端浏览器的请求后,会解析请求的URL路径,获取访问的Servlet资源路径
- 查找web.xml文件是否有对应的<url-pattern>标签体内容
- 如果有,则找到对应的<servlet-class>全类名
- tomcat会将字节码文件加载进内存,并且创建其对象
- 调用其方法
4、生命周期的方法
- 被创建:执行init方法
- 第一次被访问时
- 内存中只有一个对象,是单例的
- 多个用户访问可能存在线程安全问题:不要在servlet内定义成员变量
- 提供服务
- 每次访问都会执行
- 被销毁
- 服务器正常关闭时被销毁
- 执行destory释放资源
5、Servlet3.0注解
- 支持注解,无需web.xml
- 方式:类上加注解
//@WebServlet(urlPatterns = "/demo",value="/demo")urlpattern最重要,value和其值相同,可以省略键,只写访问的地址
@WebServlet("/demo")//servlet的资源路径
6、IDEA与tomcat相关配置
- 为每个项目单独建配置文件
- Using CATALINA_BASE: "C:\Users\Administrator\.IntelliJIdea2017.2\system\tomcat\Tomcat_8_5_53_ljh_web_2"/conf/server.xml
- 工作空间目录 D:\IdeaProjects\ljh_web\day13_servlet
- tomcat访问的是虚拟目录 D:\IdeaProjects\ljh_web\out\artifacts\day13_servlet_war_exploded
- web-inf下的资源不能被浏览器访问
【Java EE】Day13 Web概念回顾、Tomcat、Servlet的更多相关文章
- Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
在eclipse里面配置tomcat时候遇到的问题: Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web mo ...
- eclise配置tomcat出现服务Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4 and Java EE 5 Web modules
当部署项目Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, 1.5 and Java EE 5 Web modules错;解决方案,如下面: 空 ...
- Web开发之Tomcat&Servlet
<!doctype html>01 - JavaEE - Tomcat&Servlet figure:first-child { margin-top: -20px; } #wri ...
- java web 开发入门 --- tomcat/servlet/jsp
在做java web 开发时,要先安装tomcat.它是一个web服务器,也叫web容器,我们把写好的jsp, html页面放到它里面,然后启动它,就可以用浏览器访问这些页面,地址栏中输入localh ...
- java EE 环境配置(JDK + Tomcat + Eclipse for java EE)
这学期的课程多数都是java语言的,像Java Web程序设计,java课程设计案例,所以趁周末先把软件,环境配置好. 下载JDK 先给上下载链接:http://www.oracle.com/tech ...
- Java EE (3) -- Java EE 6 Web Services Developer Certified Expert(1z0-897)
Create an SOAP web service in a servlet container Create a RESTful web service in a servlet containe ...
- idea 导入 eclipse java ee 项目,并使用 tomcat 7 部署运行
1.导入java ee项目.直接open 2.导入jar依赖 3.修改编译的目录 4.修改tomcat目录 5.tomcat添加目录 请注意classes单词 D:\project\xxxxxx\We ...
- Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules的解决办法
前提:用eclipse做项目,新建“Dynamic Web Project”时,“Dynamic web module version”栏里选了3.0版本,部署项目的时候出现了如题的错误. 解决办法: ...
- 解决Tomcat 6.0 只支持 J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
通过search,发现在project的.setting folder下面,有个名为org.eclipse.wst.common.project.facet.core.xml的文件,里面配置有各种版本 ...
- eclipse:eclipse for java EE环境下如何配置tomcat服务器,并让tomcat服务器显示在控制台上,将Web应用部署到tomcat中
eclipse环境下如何配置tomcat 打开Eclipse,单击"Window"菜单,选择下方的"Preferences". 单击"Server& ...
随机推荐
- CentOS无法识别NTFS格式U盘完美解决方案
问题描述:CentOS上无法识别NTFS格式的U盘 解决方案: # 进入yum目录 cd /etc/yum.repos.d # 下载阿里的epel wget http://mirrors.aliyun ...
- @property装饰器和property()函数
@property装饰器 Python内置的@property装饰器可以把类的方法伪装成属性调用的方式.也就是本来是Foo.func()的调用方法,变成Foo.func的方式. class Peopl ...
- 【前端必会】webpack 插件,前进路绕不过的障碍
背景 webpack的使用中我们会遇到各种各样的插件.loader. webpack的功力主要体现在能理解各个插件.loader的数量上.理解的越多功力越深 开始 https://webpack.do ...
- Node.js躬行记(23)——Worker threads
Node.js 官方提供了 Cluster 和 Child process 创建子进程,通过 Worker threads 模块创建子线程.但前者无法共享内存,通信必须使用 JSON 格式,有一定的局 ...
- 市面上erp软件那么多,为什么很多卖家选择定制erp?
为什么选择定制ERP?适合自己的才是最好的啊!就连头部ERP企业提供给用户的ERP系统,应该也没有不进行个性化定制的吧,匹配很重要!规模不同.行业不同.发展阶段不同.生产模式不同.管理理念不同,适用的 ...
- [题解] Atcoder Regular Contest ARC 148 A B C E 题解
点我看题 题目质量一言难尽(至少对我来说 所以我不写D的题解了 A - mod M 发现如果把M选成2,就可以把答案压到至多2.所以答案只能是1或2,只要判断答案能不能是1即可.如果答案是1,那么M必 ...
- 一个 dubbo 和 springboot 的兼容性问题
背景介绍 最近把dubbo的版本从2.7.3升级到2.7.15时,遇到一个报错 No application config found or it's not a valid config! ,对应的 ...
- python合并多个excel
前言 1.工作中,经常需要合并多个Excel文件.如果文件数量比较多,则工作量大,易出错,此时,可以使用Python来快速的完成合并. 2.使用方法:将需要合并的多个Excel文件放到同一个文件夹下, ...
- java中的自动拆装箱与缓存(Java核心技术阅读笔记)
最近在读<深入理解java核心技术>,对于里面比较重要的知识点做一个记录! 众所周知,Java是一个面向对象的语言,而java中的基本数据类型却不是面向对象的!为了解决这个问题,Java为 ...
- 云原生时代的DevOps平台设计之道
开发人员与运维人员是 IT 领域很重要的两大人群,他们都会参与到各种业务系统的建设过程中去.DevOps 是近年间火爆起来的一种新理念,这种理念被很多人错误的解读为"由开发人员(Dev)学习 ...