idea tomcat war 环境快速开始

一、IntelliJ IDEA配置Tomcat

使用IntelliJ IDEA配置Tomcat(详细操作)
参考URL: https://www.cnblogs.com/weixinyu98/p/9822048.html
IDEA配置本地tomcat启动项目
参考URL: https://blog.csdn.net/fengchao2016/article/details/83023725

二、IntelliJ IDEA 远程调试 Tomcat 的方法

IntelliJ IDEA 远程调试 Tomcat 的方法
参考URL: https://blog.csdn.net/qq_35246620/article/details/78507324

三、IDEA中的war和war exploded的区别

IDEA中的war和war exploded的区别
参考URL: https://www.jianshu.com/p/5719458486ff

  • war
    war模式这种可以称之为是发布模式,就是先将WEB工程打成war包,然后再将其上传到服务器进行发布 。

  • war exploded
    war exploded模式是将WEB工程以当前文件夹的位置关系上传到服务器,即直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。

此时在tomcat的文件目录中不会有解压的war文件夹。如果用idea, 它会在${user.home}/.IntelliJIdea/system/tomcat 目录下生成项目的文件夹,里面包含了tomcat的配置,日志等信息。
如果用idea,它会在如下目录下生成项目的文件夹

C:\Users\she\.IntelliJIdea2018.1\system\tomcat\Unnamed_webrelay

在其目录下的
/conf/Catalina/localhost 目录下有 *.xml 配置文件,指定了项目的路径

C:\Users\she\.IntelliJIdea2018.1\system\tomcat\Unnamed_webrelay\conf\Catalina\localhost\ROOT.xml

四、web.xml

一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。web.xml主要用来配置Filter、Listener、Servlet等。但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。

1. web.xml文件常用元素详解

1、schema
web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素中,都必须标明这个 web.xml使用的是哪个模式文件。其它的元素都放在之中
2. 上下文参数

	<context-param>
		<param-name>logbackConfigLocation</param-name>
		<param-value>classpath:logback.xml</param-value>
	</context-param>

**声明应用范围内的初始化参数。它用于向 ServletContext提供键值对,即应用程序上下文信息。**我们的listener, filter等在初始化时会用到这些上下文中的信息。在servlet里面可以通过getServletContext().getInitParameter(“context/param”)得到。

  1. 过滤器
    如下demo,StatisticsFilter是自定义实现javaxs.servlet.Filter接口的类。
	<!-- 时间统计 -->
	<filter>
		<filter-name>statistics</filter-name>
		<filter-class>cn.xxx.xxx.filter.StatisticsFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>statistics</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
  1. 监听器
<listener> 
    <listerner-class>com.listener.SessionListener</listener-class> 
</listener>

最重要的一个元素:
用来声明一个servlet的数据,主要有以下子元素:

  • 指定servlet的名称
  • 指定servlet的类名称
  • 指定web站台中的某个JSP网页的完整路径
  • 用来定义参数,可有多个init-param。在servlet类中通过* getInitParamenter(String name)方法访问初始化参数
  • 指定当Web应用启动时,装载Servlet的次序。当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet。当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它。
  • 用来定义servlet所对应的URL,包含两个子元素
  • 指定servlet的名称
  • 指定servlet所对应的URL

五、Servlet

JavaWeb——Servlet(全网最详细教程包括Servlet源码分析)
参考URL: https://blog.csdn.net/qq_19782019/article/details/80292110

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

Servlet是SUN公司提供的一门用于开发动态WEB资源的技术。SUN公司在其API中提供了一个Servlet接口,用户若想开发一个动态WEB资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:

  1. 编写一个Java类,实现Servlet接口;
  2. 把开发好的Java类部署到WEB服务器中。

1. Servlet 的工作原理

Servlet接口定义了Servlet与servlet容器之间的契约。这个契约是:Servlet容器将Servlet类载入内存,并产生Servlet实例和调用它具体的方法。但是要注意的是,在一个应用程序中,每种Servlet类型只能有一个实例。

用户请求致使Servlet容器调用Servlet的Service()方法,并传入一个ServletRequest对象和一个ServletResponse对象。ServletRequest对象和ServletResponse对象都是由Servlet容器(例如TomCat)封装好的,并不需要程序员去实现,程序员可以直接使用这两个对象。

ServletRequest中封装了当前的Http请求,因此,开发人员不必解析和操作原始的Http数据。ServletResponse表示当前用户的Http响应,程序员只需直接操作ServletResponse对象就能把响应轻松的发回给用户。

对于每一个应用程序,Servlet容器还会创建一个ServletContext对象。这个对象中封装了上下文(应用程序)的环境详情。**每个应用程序只有一个ServletContext。每个Servlet对象也都有一个封装Servlet配置的ServletConfig对象。**

Servlet的工作模式

  • 客户端发送请求至服务器
  • 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器
  • 服务器将响应返回客户端

2. WEB工程加载web.xml过程

WEB工程加载顺序与元素节点在文件中的配置顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。WEB容器的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet。并且这些元素可以配置在文件中的任意位置。

加载过程顺序如下:

  1. 启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。
  2. 紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
  3. 容器将转换为键值对,并交给servletContext。
  4. 容器创建中的类实例,创建监听器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值