文章目录
前言
这一篇文章主要介绍了IDEA社区版和Tomcat的集成(利用maven),Servlet的介绍以及三种创建方式。
一、IDEA社区版和Tomcat的集成(借助maven)
1. 创建maven项目,模板选择如下图所示:
2. 创建完成后,在pom.xml中添加Tomcat插件:
(这里的tomcat选择的是7的版本,官方没有8的插件,但是maven的仓库里面有一个8的插件,有需要的可以去找一下,因为是学习阶段,所以使用了网上大多数人选择的7的版本)
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>8080</port>
<!--这里设置了path,访问的时候地址就是:http://localhost:8080/java_web_day01/xxx-->
<path>/java_web_day01</path>
<uriEncoding>UTF-8</uriEncoding>
<server>tomcat7</server>
</configuration>
</plugin>
3. 在pom中添加servlet
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
4. 配置Tomcat运行
点击这里的位置,没有添加过的话,应该是一个add。
添加Tomca运行,保存后,上图运行的位置就会出现Tomcat7了。
5. 然后还需要配置下web.xml,如下:
(这里因为我用的servlet3.1,所以这里的版本也写的3.1,关于这段配置,网上有一篇博客有详细的对应表,可以去查一下。如果这里不配置的话,会有报红的,虽然不知道有没有影响,但是还是习惯配置好。ps. 如果添加了配置报红的话,可以选中报红的第二个链接,然后在IDEA中点击那个小灯泡的提示,选择Fetch external resources,就没有报红了。)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" 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 "
metadata-complete="true">
<display-name>Web Application</display-name>
</web-app>
到这里,配置基本上已经完成了,点击运行的部分,就可以在IDEA里面启动Tomcat的服务器了。
二、Servlet基础
1.Servlet的定义
运行在web服务器中的小型java程序。通常通过HTTP(超文本传输协议)接收和响应来自web客户端的请求。
2. servlet生命周期
实例化 --> 初始化 --> 服务 --> 销毁
(实例化由构造方法实现,初始化由init方法实现,服务是service方法,销毁是destroy方法)
3.Servlet的三种创建方式
方式一:实现servlet接口
(当服务器启动,实例化和初始化方法被调用,访问链接,调用服务方法,如果卸载应用,那么就调用destroy方法;关于卸载,需要在Tomcat的manager页面中去卸载,但是由于这里用的是maven集成的Tomcat,无法打开那个页面,但是可以通过maven打war包,放到本地的Tomcat服务器里面去启动,来卸载,并查看destroy的调用结果。)
public class ServletStudy implements Servlet {
public ServletStudy(){
//实例化
System.out.println("==============实例化===============");
}
@Override
public void init(ServletConfig servletConfig) throws ServletException {
//初始化
System.out.println("==============初始化===============");
}
@Override
public ServletConfig getServletConfig() {
//获得任何启动信息
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
//服务
//System.out.println("hello servlet day01");
System.out.println("==============服务方法===============");
}
@Override
public String getServletInfo() {
//允许servlet返回自身的基本信息,比如作者,版本和版权
return null;
}
@Override
public void destroy() {
//销毁
System.out.println("==============销毁了===============");
}
}
}
方式二:继承GenericServlet类(适配器模式)
public class GenericServletStudy extends GenericServlet {
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("GenericServlet......");
}
}
方式三:继承HttpServlet类(模板方法设计模式)
(在service方法中,会区分get,post等方法,继承的类重写doGet,doPost,最终会根据请求方式调用对应的重写的方法,这种方式也是最常用的方式)
public class HttpServletStudy extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("================get=============");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("================post=============");
}
}
4.web.xml的配置2
我们在配置web项目的时候,有配置过web.xml,现在的配置是为了让我们启动服务的时候,访问链接,可以找到对应的servlet。
<!--创建一个Servlet实例-->
<servlet>
<servlet-name>servletStudy</servlet-name>
<servlet-class>com.web.servlet.ServletStudy</servlet-class>
<!--这里写的是对应的servlet的全类名-->
</servlet>
<!--给Servlet映射一个可供客户端访问的URI-->
<servlet-mapping>
<servlet-name>servletStudy</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
<!--Servlet实例和URI的名字要一致,访问是根据URI的名字找到Servlet的实例的-->
总结
本篇文章讲解了如何在IDEA社区版集成Tomcat,主要是利用maven来实现的,也有从IDEA插件里面去下载一个Tomcat的插件实现的方法,也有很多博客写过,因为没有尝试,所以就不写啦。介绍了三种创建Servlet的方式,继承HttpServlet类是最常用的,因为它里面有区分get,post等请求方式,这和我们现在常见的Http请求的操作是最吻合的。