Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Servlet

upan edited this page Oct 28, 2016 · 14 revisions

简介

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

Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

最早支持Servlet标准的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

官方文档

Servlet 规范&文档

JavaEE 当前版本是7,正在进行8版本的开发。Servlet 是Java EE下的框架,不再JavaSE中。

项目使用

目前项目中使用的是3.1.0版本

<dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>javax.servlet-api</artifactId>
 <version>3.1.0</version>
</dependency>

重要概念和类

核心概念

  • Servlet
  • Filter

常用类:

  • HttpServlet
  • ServetConfig
  • ServletContext
  • Filter
  • FilterConfig
  • FilterChain
  • RequestDispatcher
  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
  • 一些 Listenser 类

Servlet 配置文件

Java Web 项目还需要一个非常重要的配置文件 web.xml ,每个 servlet 都必须在 web.xml 中定义并进行 URL 映射配置.

配置文件元素详解

加载顺序: content-param --> listener --> filter --> servlet ,通过查看3.0版本的xsd可以看到大概有以下一级节点:

  • context-param
    • param-name
    • param-value
  • filter
    • filter-name
    • filter-class :The fully qualified classname of the filter
    • async-supported
    • init-param
      • param-name
      • param-value
  • filter-mapping
    • filter-name
    • url-pattern
    • dispatcher
  • listener
  • servlet
    • servlet-name
    • servlet-class
    • jsp-file
    • init-param
    • load-on-startup
  • servlet-mapping
    • servlet-name
    • url-pattern
  • session-config
  • mime-mapping
  • welcome-file-list
  • error-page
  • jsp-config
  • security-constraint
  • login-config
  • security-role
  • message-destination
  • locale-encoding-mapping-list

,配置示例

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 version="3.0">
<web-app>
 <filter>
 <filter-name>helloFilter</filter-name>
 <filter-class>demo.HelloFilter</filter-class>
 </filter>
 
 <filter-mapping>
 <filter-name>helloFilter</filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>
 
 <servlet>
 <servlet-name>hello_world</servlet-name>
 <servlet-class>demo.HelloServlet</servlet-class>
 <load-on-startup>1</load-on-startup>
 </servlet>
 
 <servlet-mapping>
 <servlet-name>hello_world</servlet-name>
 <url-pattern>/hello</url-pattern>
 </servlet-mapping>
 
</web-app>

参考

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /