servlet 基本配置

本文简单介绍下通过「 web.xml 文件」以及通过「注解」的方式简单配置 servlet。

通过 web.xml 文件

为方便阅读,此项目目录结构如下图所示:
web.xml 文件配置 servlet
其中 ServletDemo1 中的 ServletDemo1 类需要实现 Servlet 接口内容,代码如下:

package com.demo.web.servlet;

import javax.servlet.*;
import java.io.IOException;

public class ServletDemo1 implements Servlet {
	/**
	 * 初始化方法
	 * 在 servlet 创建时执行,只执行一次
	 * @param servletConfig
	 * @throws ServletException
	 */
	@Override
	public void init(ServletConfig servletConfig) throws ServletException {

	}

	@Override
	public ServletConfig getServletConfig() {
		return null;
	}

	/**
	 * 提供服务方法
	 * 每当 servlet 被访问时执行,执行多次
	 * @param servletRequest
	 * @param servletResponse
	 * @throws ServletException
	 * @throws IOException
	 */
	@Override
	public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
		// 此代码方便稍后测试访问指定路径后,servlet 是否配置成功
		System.out.println("Hello,Servlet!");
	}

	@Override
	public String getServletInfo() {
		return null;
	}

	/**
	 * 销毁方法
	 * 在服务器正常关闭时访问,只有一次
	 */
	@Override
	public void destroy() {

	}
}

其中 web.xml 需要在 <web-app> 标签内加上 <servlet> 标签体 <servlet-mapping> 中的内容,具体内容如下:

<?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>
        <!--demo1 为自定义的名称-->
        <servlet-name>demo1</servlet-name>
        <!--com.demo.web.servlet.ServletDemo1 是全类名,在 com.demo.web.servlet 下的某个完整类名,格式为:包名+类名-->
        <servlet-class>com.demo.web.servlet.ServletDemo1</servlet-class>
    </servlet>
    <!--配置映射-->
    <servlet-mapping>
        <!--demo1 为 <servlet> 标签中的自定义名称,两者必须相同-->
        <servlet-name>demo1</servlet-name>
        <!--映射路径: /demo1 为以后可被访问的路径,例如:http://localhost:8080/demo1-->
        <url-pattern>/demo1</url-pattern>
    </servlet-mapping>
</web-app>

此时,在正确配置 Tomcat 后,访问 http://localhost:8080/demo1 后会在 IDEA 的 Output 窗口中输出 「Hello,Servlet!」,如下图所示:
web.xml 文件配置 servle

通过注解方式

条件:创建 JavaEE 项目时,选择 Servlet 的版本是 3.0 以上(也就是选择的 Java EE version 为 Java EE 6 以及以上)。

为方便阅读,此项目目录结构如下图所示:
注解配置 Servlet
其中 ServletDemo1 中的 ServletDemo1 类需要实现 Servlet 接口内容,代码如下:

package com.demo.web.servlet;

import javax.servlet.*;
import java.io.IOException;

@WebServlet(urlPatterns = "/demo1")//此行为注解配置 Servlet 的代码
public class ServletDemo1 implements Servlet {
	/**
	 * 初始化方法
	 * 在 servlet 创建时执行,只执行一次
	 * @param servletConfig
	 * @throws ServletException
	 */
	@Override
	public void init(ServletConfig servletConfig) throws ServletException {

	}

	@Override
	public ServletConfig getServletConfig() {
		return null;
	}

	/**
	 * 提供服务方法
	 * 每当 servlet 被访问时执行,执行多次
	 * @param servletRequest
	 * @param servletResponse
	 * @throws ServletException
	 * @throws IOException
	 */
	@Override
	public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
		// 此代码方便稍后测试访问指定路径后,servlet 是否配置成功
		System.out.println("Hello,Servlet By Annotation!");
	}

	@Override
	public String getServletInfo() {
		return null;
	}

	/**
	 * 销毁方法
	 * 在服务器正常关闭时访问,只有一次
	 */
	@Override
	public void destroy() {

	}
}

此时,在正确配置 Tomcat 后,访问 http://localhost:8080/demo1 后会在 IDEA 的 Output 窗口中输出 「Hello,Servlet By Annotation!」,如下图所示:
在这里插入图片描述

One More Thing:
查看 @webServlet 此注解代码中的:

java.lang.String name() default "";

java.lang.String[] value() default {};

java.lang.String[] urlPatterns() default {};

@WebServlet(urlPatterns = "/demo1")@WebServlet(value = "/demo1")@WebServlet("/demo1"),此时也可以得到通过注解配置 Servlet 的结果。

urlPatterns 配置

urlPartten:Servlet 的访问路径

一个 Servlet 可以定义多个访问路径例如:@WebServlet({"/x1","/x2","/x3"})

  1. /xxx:路径匹配

  2. /xxx/xxx:多层路径,目录结构

  3. *.do:扩展名匹配

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值