Tomcat学习目录

  • 一.Tomcat基础知识
    • 1.JavaEE十三种规范是什么?(cv)
    • 2.JavaEE和JavaWeb的区别
    • 3.Tomcat是什么?
    • 4.Tomcat服务器和Web服务器的区别?
    • 2.Tomcat静态资源和动态资源分别指什么?
    • 3.Tomcat处理servlet过程(代完善)
    • 4.ServletConfig是什么?
  • 二.创建Tomcat服务器
    • 第一步:创建一个Web服务器
      • 1.先在Application servers中建立服务器
      • 2.创建一个web文件
      • 3. 将web项目部署(发布)到服务器中,就可以发静态资源
    • 第二步:在Web服务器的基础上生成Tomcat服务器
  • 四.关于Tomcat项目的文件目录分析
    • 1.src目录
    • 2.web分析
    • 3.web-INF分析
    • 4.index.jsp
  • 五.Tomcat中web.xml的作用
    • 1.指定欢迎页面
    • 2.命名与定制URL
    • 3.定制初始化参数
    • 4、指定错误处理页面
    • 5、设置过滤器
    • 6.设置监听器
    • 7、设置会话(Session)过期时间
  • 五.Tomcat架构
  • 六Tomcat使用过程中常见问题解决方案
    • 1.当Tomcat报错时,控制台会出现中文乱码如下:

一.Tomcat基础知识


1.JavaEE十三种规范是什么?(cv)

1.JDBC(java Database Connectivity):
JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题,同时,JDBC对数据库的访问也具有平台无关性。
2.JNDI(Java Name and Directory Interface)
JNDI API 被用于执行名字和目录服务。它提供了一致的模型用来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。
3.EJB(Enterprise JavaBean)
一个框架开发和实施分布式商务逻辑,由此很显著简化了具有可伸缩性和高度复杂的企业级应用开发。
4.RMI(RemoteMethod Invoke)
RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务器端传递数据
5.Java IDL(接口定义语言)/CORBA
公共对象请求代理结构(Common Object Request Breaker Architecture)
6.JSP(Java Server Pages)
Jsp页面由html代码和嵌入其中的Java新代码所组成。用来生成动态页面
7.Java Servlet
Servlet提供的功能大多和jsp类似,不过实现方式不同。JSP通过大多数的html代码中嵌入少量的java代码,而servlet全部由java写成。
8.XML(Extensible Markup Language)
XML是一种可以用来定义其他标记语言的语言
9.JMS(Java Message Service)
JMS是用于和面向消息的中间件相互通信的应用程序接口(API)
10.JTA(Java Transaction Architecture)
Java事务API。允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。
11.JTS(Java Transaction Service)
JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTSspecification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
12.JavaMail
JavaMail是用于存取邮件服务的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。
13.JAF(JavaBeans Activation Framework)
JAF是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口.也就是说,JAF让Java程序知道怎么对一个数据源进行查看,编辑,打印等.


2.JavaEE和JavaWeb的区别

J2EE是Java的企业应用开发,涵盖了B/S和C(Client客户端)/S(Server服务器),注重的是结构和框架,我们所熟知的struts2、hibernate和spring即ssh就是j2ee的一些基本框架。
JavaWeb是指Java在B(Browser浏览器)/S(Server服务器)方面的开发,做的是网络应用;


3.Tomcat是什么?

由上可知JavaEE有13个核心技术规范,而Tomcat只并不能全部支持这些规范,只实现了Servlet和JSP这两个规范。而其他服务器比如JBoss、Weblogic都是完全支持的JavaEE13种规范的,所以人们往往更愿意叫Tomcat为轻量级的服务器,也有叫它Servlet/JSP容器的。这也是为什么我们新建了一个Tomcat服务器就能够直接生成Servlet和JSP这两个api(如下图),而不需要像JDBC那样直接导入依赖。


4.Tomcat服务器和Web服务器的区别?

Tomcat服务器 = Web服务器 + Servlet/JSP容器(Web容器)。
Web服务器的作用是接收客户端的请求,给客户端作出响应。但是很明显,服务器不止静态资源呀,所以客户端发起请求后,如果是动态资源,Web服务器不可能直接把它响应回去(比如JSP),因为浏览器只认识静态资源。所以对于JavaWeb程序而言,还需要JSP/Servlet容器,JSP/Servlet容器的基本功能是把动态资源转换成静态资源。


2.Tomcat静态资源和动态资源分别指什么?

简而言之:
Tomcat静态资源是指如html,jsp这类前端网页界面;
Tomcat动态资源是指在src下的java中的类


3.Tomcat处理servlet过程(代完善)

(1)servlet接口存在一个init方法:public void init(ServletConfig config) throws ServletException;
当servlet 第一次被调用的时候,反射构造 servlet类对象并调用它的init方法(仅调用一次);
(2)响应每次请求的时候 ,构建一个javax.servlet.ServletRequest 和 javax.servlet.ServletResponse实例。
(3)调用servlet的service方法(service被HttpServlet重写,会根据请求类型调用doGET,doPOST等方法,这也是我们为什么要重写doGET,doPOST方法的原因),将ServletRequest对象 和 ServletResponse 对象当作参数传入。
(4)当servlet类关闭的时候,调用servlet的destroy方法,并卸载servlet类。


4.ServletConfig是什么?

字面意思:是Servlet的配置信息,其内部存在4个get方法。
public String getServletName();//获取Servlet的名字
public ServletContext getServletContext();//获取
public String getInitParameter(String name);//根据Servlet名字获取初始参数信息
public Enumeration getInitParameterNames();//获取初始参数名字的枚举类型。


二.创建Tomcat服务器

前提:先在本地下载Tomcat服务器,并添加到路径中去。
官网网站:https://tomcat.apache.org/download-80.cgi
环境配置:https://www.cnblogs.com/weixinyu98/p/9822048.html

第一步:创建一个Web服务器


1.先在Application servers中建立服务器

  建立服务器时,服务器会自动生成一个servlet:name包,包内含jsp-api.jar和servlet-api.jar
  


2.创建一个web文件

  1.建立一个java文件或maven项目
  2.在java文件上右键:add Framework Support


3. 将web项目部署(发布)到服务器中,就可以发静态资源

  1.Run->Edit Configurations->Tomcat Servlet->local 来创建Tomcat服务器的配置
  2.修改配置名和端口号(当服务器只有一个maven项目时不用修改端口号)
  3.在Deployment上部署网站(如下图)
  4.在Application Context给本网站取个名字如"/myWeb"或不取名字"/"
  


第二步:在Web服务器的基础上生成Tomcat服务器

经过以上步骤我们已经能够在服务器上发表简单的静态资源文件了,但是我们又该如何发布动态资源文件呢?
在上述步骤的基础上进行以下操作:

  1.把servlet-api.jar添加External Libraries中:project Structure->Module->Dependencies->添加包
  
  2.用java文件继承HttpServlet,并重写doGET和doPOST函数

//com.junjun.java.HelloServlet
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//        通过响应对象向Tomcat索要输出流PrintWriter(这个输出流是原来就存在的,不是生成的)PrintWriter Out=resp.getWriter();
//        通过输出流将执行结果以二进制形式写入响应体(这是Http回应协议包里的响应体)
//        write的int c是ASCII码,本质上和char c是一样的。要区分int c和int iOut.write("调用了doGet后会在浏览器页面上显示/n");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.deGet(req, resp);}
}

  3.在web.xml中配置servlet

<?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_4_0.xsd"version="4.0">
<!--    第一个servlet的设置--><servlet><servlet-name>mm</servlet-name><servlet-class>com.junjun.java.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>mm</servlet-name><url-pattern>/sdsds</url-pattern></servlet-mapping>
</web-app>

  4. 在浏览器上输入http://localhost:8080/myWeb/sdsds就能访问这个servlet动态资源了


四.关于Tomcat项目的文件目录分析

  


1.src目录

  用来存放动态资源文件,若要调用需要在web.xml中注册控制器


2.web分析

  调用web目录下的index.jsp,用http://localhost:8080/myweb/index.jsp.
  若Application Context指定为/,则服务器默认进入网址为http://localhost:8080/index.jsp


3.web-INF分析

  WEB-INF是Java的WEB应用的安全目录。客户端无法访问,只有服务端可以访问。即转发是可以访问的,但是重定向是不能访问的


4.index.jsp

  当我们点击开启Tomcat服务器会访问http://localhost:8080/myweb/地址,
  实际上http://localhost:8080/myweb/完全等同于浏览器手动访http://localhost:8080/myweb/index.jsp


五.Tomcat中web.xml的作用


1.指定欢迎页面

  注意:如果存在多个欢迎界面,则按出现的先后顺序来确立优先级。

<welcome-file-list><welcome-file-list><welcome-file>index.jsp</welcome-file><welcome-file>index1.jsp</welcome-file></welcome-file-list>

2.命名与定制URL

        <servlet><servlet-name>mm</servlet-name><servlet-class>com.junjun.java.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>mm</servlet-name><url-pattern>/sdsds</url-pattern></servlet-mapping>

3.定制初始化参数

  获取参数值:在servlet中调用getServletConfig().getInitParameter(“contextConfigLocation”)获得参数名对应的值。

   <servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern>

4、指定错误处理页面

  通过“异常类型”或“错误码”来指定错误处理页面。

<error-page><error-code>404</error-code><location>/error404.jsp</location>
</error-page><error-page><exception-type>java.lang.Exception<exception-type><location>/exception.jsp<location>
</error-page>

5、设置过滤器

  通过过滤器过滤url请求

<filter><filter-name>XXXCharaSetFilter</filter-name><filter-class>net.test.CharSetFilter</filter-class>
</filter>
<filter-mapping><filter-name>XXXCharaSetFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

6.设置监听器

  通过过滤器过滤url请求

<listener>
<listener-class>net.test.XXXLisenet</listener-class>
</listener>

7、设置会话(Session)过期时间

  其中时间以分钟为单位,假如设置60分钟超时:

<session-config>
<session-timeout>60</session-timeout>
</session-config>

五.Tomcat架构



六Tomcat使用过程中常见问题解决方案

1.当Tomcat报错时,控制台会出现中文乱码如下:

  【解决方案】:
找到Tomcat /config/logging.properties文档,将其中ConsoleHandler.encoding=UTF-8改为GBK就行(很可能在47行)。

Tomcat学习笔记(含servlet)相关推荐

  1. TOMCAT学习笔记

    TOMCAT学习笔记 (2011-10-03 17:03:26) 转载▼ 标签: 杂谈 分类: 编程 2011年10月3日 1.TOMCAT总体来说由两部分组成:connector和container ...

  2. Tomcat学习笔记02【Tomcat部署项目】

    Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...

  3. Tomcat学习笔记01【Web相关概念、Tomcat基本操作】

    Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...

  4. 国密消息鉴别码学习笔记 ——含GB/T 15852和HMAC(第2章 基于分组密码的MAC)

    国密消息鉴别码学习笔记  --含GB/T 15852和HMAC 摘要:本文档对我国标准规定的消息鉴别码的生成算法进行了简要介绍,包括算法生成步骤,注意事项等.我国的相关标准包括GB/T 15852.1 ...

  5. Tomcat 学习笔记

    Tomcat: Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat ...

  6. 网规第二版:第8章 网络规划与设计论文学习笔记(含历年真题)(完结)

    第8章 网络规划与设计论文学习笔记 8.1写作范围要求 1.网络技术应用与对比分析 2.网络技术对应用系统建设的影响 3.专用网络需求分析.设计.实施和项目管理 4.下一代网络技术分析 8.2论文考试 ...

  7. Tomcat学习笔记(5)- 容器(Engine、Host、Context、Wrapper)

    Engine即为全局引擎容器,它的标准实现是StandardEngine. Host在整个Servlet引擎中抽象出Host容器用于表示虚拟主机,它是根据URL地址中的主机部分抽象的,一个Servle ...

  8. JavaEE学习笔记之Servlet

    同一用户的不同页面的共享数据 1.1 cookie技术 1.2 sendRedirect()转向 1.3 隐藏表单 1.4 session技术 ###session技术: 当用户打开浏览器,访问某个网 ...

  9. Tomcat 学习笔记(0)

    JavaWeb 用Java写的程序,可以在浏览器运行. Request & Responce Web资源 Web服务器 我们在自己的主机启动Tomcat服务器,然后运行它,就能够通过主机访问这 ...

  10. Tomcat学习笔记(三)—— Server组件

    前面已经初步了解了Server组件是什么东西及其作用.在这里进一步对Server组件进行研究学习. Server组件 从Tomcat的层次结构中已经知道Server组件是Tomcat最顶层组件,它可以 ...

最新文章

  1. 我的世界光影mod怎么用_用“戏剧化”光影艺术 唤醒千年沉睡世界!
  2. struts2学习(3)struts2核心知识II
  3. solr6.6+jetty+centos+mysql
  4. OpenCV计算机视觉实战(Python版)_006边缘检测
  5. shell 学习笔记2
  6. 也谈谈Javascript中的几个怪异特性(上)
  7. centos6.5 redis3 开机自动启动命令设置
  8. QT creator安装教程
  9. 使用树莓派gpio连接ps2手柄模块(附程序)
  10. 化学分子溶解度预测模型(python-Rdkit构建)
  11. 最新2021计算机排名中国大学排名,2020-2021年计算机类专业排名_中国大学本科教育按专业类排行榜_中国科教评价网...
  12. ios html调起高德地图,iOS 调用百度地图, 高德地图,苹果自带的地图
  13. Java实现基于朴素贝叶斯的情感词分析
  14. Unity-3d小游戏开发-----走迷宫
  15. [转载记录]系统的UIM卡介绍
  16. Error from server: Get “https:IP:10250/*“:dial tcp IP:10250: connect: no route to host
  17. 洛谷P1607 [USACO09FEB]庙会班车Fair Shuttle
  18. 什么是邮箱地址?邮箱地址在哪里找?
  19. 如何在网页中使用阿里图标iconfont(2022最新版详细)
  20. 新疆计算机考试ppt教程,职考宝典2021新疆 职称计算机考试模块ppt2007真题试题软件...

热门文章

  1. java首行缩进两个字符,CSS 首行缩进两个文字
  2. 数据分析的N种特征方法实例
  3. JAVA利用jsoup爬取百度热点信息
  4. 【沃顿商学院学习笔记】管理学——06腐败带来的间接成本和全球制裁状况Indirect Costs and Sanction
  5. No OraCM running
  6. 支持向量机:Duality
  7. 不用Home Assistant让小米智能家居接入HomeKit
  8. Android系统WebView无法安装,Android系统进程无法加载WebView
  9. BZOJ2748: [HAOI2012]音量调节
  10. 四象限法推导lm曲线_提出研究问题的“四象限法”