IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 运行在服务器端口的小程序 Servlet -> 正文阅读

[Java知识库]运行在服务器端口的小程序 Servlet

详细内容请点击菜鸟教程-Servlet:https://www.runoob.com/servlet/servlet-tutorial.html

一、Servlet 简述

Servlet就是一个接口,它定义了Java类被浏览器访问到(Tomcat识别)的规则。

我们需要自定义一个类,实现Servlet接口,复写方法。

Servlet 在 Web 应用程序中的位置:

Servlet 在 Web 应用程序中的位置

Servlet 环境设置:https://www.runoob.com/servlet/servlet-environment-setup.html

Servlet的体系结构:

Servlet -- 接口
		|  继承
	GenericServlet -- 抽象类
			|
		HttpServlet -- 抽象类

二、Servlet中的生命周期

2.1 被创建

执行 init() 方法,只执行一次;一个 Servlet 在内存中只存在一个对象,Servlet 是单例的;所以当多个用户同时访问时,可能存在线程安全问题;如何解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要修改其值。

Servlet 创建于用户第一次调用对应于该 Servlet 的 URL 时,但也可以指定 Servlet 在服务器第一次启动时被加载。

2.2 提供服务

执行 service() 方法,执行多次。每次访问 Servlet 时,service() 方法都会被调用一次。

Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet()doPost()doPut()doDelete() 等方法。

常用的是 doGet()doPost() 方法。

2.3 被销毁

执行 destroy() 方法,只执行一次,在 Servlet 被销毁时执行。destroy() 方法可以让 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

三、用 Servlet 输出 Hello World (使用IDEA、Servlet 3.0)

如何创建一个 Java EE 项目,并实现 Servlet 接口?参考步骤如下:

  1. 创建Java EE项目。
    创建JavaEE项目步骤二

  2. 定义一个类,实现 HttpServlet 接口(public class HelloWorld implements HttpServlet

  3. 修改注解配置,如:@WebServlet("/hello")

  4. 实现接口中的抽象方法

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// 扩展 HttpServlet 类
//访问该HelloWorld类的url路径:项目虚拟路径/hello,如 http://localhost:8080/loginCase_war_exploded/hello
@WebServlet("/hello")
public class HelloWorld extends HttpServlet {
 
  private String message;

  public void init() throws ServletException
  {
      // 执行必需的初始化
      message = "Hello World";
  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");
      // 设置响应内容:打印在浏览器
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
      // 打印在 IDEA 控制台
      System.out.println(message);
  }
  
  public void destroy()
  {
      // 什么也不做
  }
}
  1. Tomcat 配置的部分参考:
    创建JavaEE项目步骤八

四、更多:Web 服务器软件相关

4.1 概念

服务器:指安装了服务器软件的计算机。

服务器软件:可以接收用户的请求,处理请求,并作出响应。

Web 服务器软件:可以部署Web项目,让用户通过浏览器来访问这些项目,接收用户的请求,处理请求,做出响应。

Java EE:Java 语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范。

4.2 Tomcat

常见的与 Java 相关的 Web 服务器软件:webLogic、webSphere、JBOSS、Tomcat。

(前三个支持所有的Java EE规范,是收费的;Tomcat 仅支持少量的Java EE规范,但开源免费)

Tomcat的下载、安装、启动、关闭、卸载,及配置

  1. 下载:官网网址 http://tomcat.apache.org/ 。

  2. 安装:解压压缩包到某目录下即可(注意安装目录中不能有中文和空格)。
    Tomcat目录说明

  3. 启动:找到 bin/startup.bat 该文件,双击运行即可。

    访问自己:在浏览器地址栏输入 http://localhost:8080 然后回车;

    访问别人:在浏览器输入 http://别人的ip:8080 然后回车。

    启动时可能遇到的问题:一是双击文件后出现黑窗口一闪而过,这是因为没有正确配置 JAVA_HOME 环境变量;二是出现启动报错,报错原因是端口被占,找到被占用的端口号,并在任务管理器中结束其对应进程即可,或者修改自身端口(不建议修改)。

  4. 关闭:运行进程 bin/shutdown.bat,或同时按住 Ctrl+c 都可,如果点击窗口的 × 可能会造成日志信息遗漏等问题。

  5. 卸载:删除目录即可。

  6. 配置:部署项目的三种方式

    一可直接将项目放在web apps目录下,或将项目打成一个 war 包,再将 war 包放置到 web apps 目录下(war包会自动解压缩)。

    二就是配置 conf/server.xml 文件,在 <Host> 标签体中配置 <Context docBase="D:\hello" path="/hehe" /> (docBase项目存放的路径,path虚拟目录)。

    三是在 conf\Catalina\localhost 创建任意文件名称的 xml 文件(如 bbb.xml),再在文件中编写 <Context docBase="D:\hello" />

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:09:58  更:2022-03-30 18:10:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:28:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码