2019-06-05

2019-06-05  本文已影响0人  IT_lz

一、idea与Tomcat配置

1、新建工程

新建工程,选择Web工程。

image.png

2、配置Tomcat

配置本地Tomcat服务,在Application server中选择Tomcat的安装位置。

image.png

3、配置编译输出的class文件位置

将编译后的class文件导出至WEB-INF中的classes文件夹。


image.png

4、启动服务

点击按钮启动服务。


image.png

如果页面显示如下,证明启动成功。


image.png

二、servlet基础

1、servlet概述

servlet主要处理客户端传来的HTTP请求,并返回一个响应。主要有doGET、doPost方法等。

2、servlet生命周期

servlet生命周期主要分为3个阶段,初始化阶段、运行阶段、销毁阶段。

初始阶段

客户端向servlet发起HTTP请求时,servlet会检查内存中是否存在servlet对象。若存在直接使用。若不存在,则调用init()方法进行实例化。init()方法只会调用一次。

运行阶段

在运行阶段,servlet会回调service()方法,通过servletRequest对象获取客户端的信息,并通过servletResponse对象进行响应。

servlet的每次访问请求,都会回调service()方法,这意味着service方法会被调用多次。

销毁阶段

当服务器关闭或web应用移除servlet容器时,会调用销毁方法destory()。

如果希望在tomcat启动时,servlet也跟着启动,可在web.xml中的相关servlet配置中加入如下语句。

<load-on-startup>1</load-on-startup>
值必须为整数,若这个值为正整数或0,则会在应用启动时加载,数值越小,越先被加载。

3、servlet多重映射

同一个servlet可以被映射成多个虚拟路径。主要实现方式有2种。

配置多个servlet-mapping

<servlet-mapping>
<servlet-name>RequestMethodServlet</servlet-name>
<url-pattern>/RequestMethodServlet</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>RequestMethodServlet</servlet-name>
<url-pattern>/RequestMethodServlet1</url-pattern>
</servlet-mapping>
在一个servlet-mapping配置多个url-pattern

<servlet-mapping>
<servlet-name>RequestMethodServlet</servlet-name>
<url-pattern>/RequestMethodServlet</url-pattern>
<url-pattern>/RequestMethodServlet1</url-pattern>
</servlet-mapping>

4、servletConfig接口

用于在servlet中声明一些辅助信息。

具体用法:

在web.xml中声明参数

<init-param>
<param-name>city</param-name>
<param-value>beijing</param-value>
</init-param>
在servlet中获取数据

ServletConfig servletConfig = getServletConfig();
String city = servletConfig.getInitParameter("city");
resp.getWriter().println("city: " + city);

5、servletContext接口

在servlet启动后,系统会为当前web应用创建一个唯一的servletContext对象。

具体用法:

在web.xml中声明参数

<context-param>
<param-name>city</param-name>
<param-value>hangzhou</param-value>
</context-param>
在servlet中获取数据

ServletContext servletContext = getServletContext();
String city = servletContext.getInitParameter("city");
resp.getWriter().println("city = " + city);

上一篇下一篇

猜你喜欢

热点阅读