Servlet简介

------------------siwuxie095

   

   

   

   

   

   

   

   

Servlet+Applet

   

   

Servlet 即 Server Applet,服务端小程序

   

Applet 是运行于客户端/浏览器上的 Java 小程序

   

   

   

   

特殊的 Java 类

   

   

Servlet 本质上也是 Java 类,所以编写 Servlet 要遵循 Java 的基本语法

   

但 Servlet 与一般的 Java 类又有所不同,它需要遵循 Servlet 规范进行编写,

所以有一些普通 Java 类所不具有的特性

   

如:

· Servlet 没有 main() 方法

· Servlet 运行于服务端

· Servlet 的创建和销毁,都是由 Servlet 容器(如:Tomcat)来管理

   

   

   

   

Servlet 与 HTTP

   

   

Servlet 和 HTTP 协议是紧密联系的,所以使用 Servlet 几乎可以

处理 HTTP 协议所有相关的内容

   

   

   

   

使用 Servlet 输出 Hello World

   

   

工程结构目录如下:

   

   

   

HelloServlet.java:

   

package com.siwuxie095.servlet;

   

import java.io.IOException;

import java.io.PrintWriter;

   

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

   

//HelloServlet 继承自 HttpServlet

public class HelloServlet extends HttpServlet {

/**

* 先覆盖父类 HttpServlet 的方法:

* 右键->Source->Override/Implement methods

* 选择 HttpServlet service() GenericServlet init() destroy()

*

* 这样,HelloServlet 的骨架生成完毕

*/

@Override

public void init() throws ServletException {

System.out.println("===== init without parameters =====");

super.init();

}

   

@Override

public void init(ServletConfig config) throws ServletException {

System.out.println("===== init with parameters =====");

super.init(config);

}

   

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

System.out.println("===== service =====");

//通过 HttpServletResponse 获取一个 PrintWriter 对象

//PrintWriter是一个以字符为单位的输出流

PrintWriter pw=resp.getWriter();

pw.println("Hello World");

//输出完毕,关闭流

pw.close();

}

   

@Override

public void destroy() {

System.out.println("===== destroy =====");

super.destroy();

}

   

   

}

   

   

在部署描述符 web.xml 中注册 servlet:

   

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

<display-name>HelloServlet</display-name>

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file>default.html</welcome-file>

<welcome-file>default.htm</welcome-file>

<welcome-file>default.jsp</welcome-file>

</welcome-file-list>

<!-- 添加一个 servlet 元素,它有两个子元素 -->

<!-- servlet 元素用于注册 servlet -->

<!-- servlet-name 用于设置 servlet 的注册名称(可随意设置) -->

<!-- servlet-name 用于设置 servlet 的完全限定名 -->

<servlet>

<servlet-name>HelloServlet</servlet-name>

<servlet-class>com.siwuxie095.servlet.HelloServlet</servlet-class>

</servlet>

<!-- 添加一个 servlet-mapping 元素,它有两个子元素 -->

<!-- servlet-mapping 元素用于映射 servlet 对外访问的路径 -->

<!-- servlet-name 也是指 servlet 的注册名称,需保持一致 -->

<!-- servlet-name servlet servlet-mapping 联系起来的唯一标志 -->

<!-- url-pattern 用于指定 servlet 对外访问的路径 -->

<servlet-mapping>

<servlet-name>HelloServlet</servlet-name>

<url-pattern>/Hello</url-pattern>

</servlet-mapping>

</web-app>

   

   

添加了如下代码:

   

   

   

   

部署描述符 web.xml 在 WEB-INF 目录下,如果没有,手动创建即可

   

选择工程 HelloServlet,右键->Java EE Tools->Generate Deployment Descriptor Stub

   

   

选择 Tomcat,右键->Add and Remove,把 HelloServlet 添加到 Tomcat 中

   

启动 Tomcat,在浏览器中输入:localhost:8080/HelloServlet/Hello

   

   

   

   

   

   

   

   

【made by siwuxie095】

原文地址:https://www.cnblogs.com/siwuxie095/p/6701348.html