欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Tomcat服务器及Servlet的基本概念

程序员文章站 2022-06-30 22:54:47
...

Tomcat服务器及Servlet的基本概念

服务器的简介

所谓服务器其实就是代码编写的一个可以根据用户请求实时的调用执行对应的逻辑代码的一个容器。在普通用户看来就是一个安装程序。我们只需要将服务器在操作系统上进行安装,并将我们事先编写好的逻辑处理代码根据规则放到服务器的指定位置,启动服务器,那么服务器就自动的会根据接收到请求调用并执行对象的逻辑代码进行处理。

注意:逻辑代码是由程序员自己编写然后放进服务器进行运行,其实就是 Servlet程序。

Servlet介绍

问题的引入:

服务器在接收到浏览器的请求后,会自动调用对应的逻辑代码进行请求处理。但是逻辑代码是由程序员编写并放到服务器中,那么服务器怎么知道该怎么调用并调用哪个类和哪个方法来进行请求处理。

解决方案:

程序员在编写代码的时候如果能够按照服务器能够识别的规则进行编写,浏览器按照指定的规则进行发送请求,那么服务器就可以调用并执行响应的逻辑代码进行请求处理了。

Servlet的概念

狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。Servlet 运行于支持 Java 的应用服务器中。从原理上讲,Servlet 可以响应任何类型的请求,但绝大多数情况下 Servlet 只用来扩展基于 HTTP 协议的 Web 服务

Servlet的特点

  • 运行在支持 java 的应用服务器上
  • Servlet 的实现遵循了服务器能够识别的规则,也就是服务器会自动的根据请求调用对应的 servlet 进行请求处理
  • 简单方便,可移植性强

Servlet的使用步骤

  1. 打开 Myeclipse 并创建工作空间

  2. 点击 file 选择—>new—>web project—>输入项目名,点击 finish

  3. 在 src 下创建包 com.bjsxt.servlet.

  4. 创建普通的 java 类并继承 HttpServlet

  5. 覆写 service 方法

//在 MyServlet 类中覆写 service 方法
package com.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req,HttpServletResponse resp)
throws ServletException, IOException {
	resp.getWriter().write("this is my first servlet.");
	System.out.println("this is my first servlet.");
	}
}

  1. 在 service 方法中书写逻辑代码即可

  2. 在 webRoot 下的 WEB-INF 文件夹下的 web.xml文件中配置 servlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"
version="2.5">
	<!--配置Servlet -->
		<!--配置servlet类路径 -->
		<servlet>
			<servlet-name>my</servlet-name>
			<servlet-class>com.servlet.MyServlet</servlet-class>
		</servlet>
	<!--配置访问方式 -->
	<servlet-mapping>
		<servlet-name>my</servlet-name>
		<url-pattern>/my</url-pattern>	//注意:一定要名字前加个/
	</servlet-mapping>
</web-app>
  1. 打开 tomcat 的安装目录,在 webapps 目录下新建文件夹,文件夹名为 project,并将项目源码 webRoot 下的内容全部复制到该文件夹***意:是复制!!!
  2. 启动 tomcat 服务器,并在地址栏中输入:localhost:8080/project/my

注意:
MyEclipse 是开发工具,通过此工具便于程序员的代码编写。**真正运行的代码不是 MyEclipse 中编写的代码,而是 tomcat 服务器中部署好的代码。**Tomcat 会根据请求自动调用对应的代码进行请求处理。

如果需要节省复制代码的步骤,可以在Myeclipse软件中集成Tomact服务器,具体如何集成看下面的Myeclipse集成tomact 。

Servlet的运行流程

运行流程:
URL:http://localhost:8080/project/myServlet
组成:
服务器地址:端口号/虚拟项目名 /servlet 的别名
URI:虚拟项目名 /servlet 的别名
浏览器发送请求到服务器,服务器根据请求 URL 地址中的 URI 信息在 webapps 目录下找到对应的项目文件夹,然后在 web.xml 中检索对应的 servlet,找到后调用并执行Servlet。

####Servlet 的 web.xml 配置

web.xml 文件的配置是为了保护 servlet。如果没有web.xml的配置其实也是可以的,我们可以将需要访问的具体的Servlet实体类的地址写进URL里面,但是这安全性不高,一些稍微懂技术的小白一下就知道你的字节码文件放在了哪个文件目录下,所以我们需要使用配置文件对信息加以保护,从而当别人想按照具体的URL路径进行查找是找不到资源的,需要按照xml配置文件所要求的格式才能够成功访问

Myeclipse集成Tomcat

问题的引入:

通过对 Servlet 的 web.xml 配置,我们知道 Servlet 的配置方式有很多种,也很多需要注意的地方。但是同时我们也发现每次在Myeclipse 中更改了代码后,都需要重新复制代码到服务器中,太过麻烦。

解决:

通过Myeclipse 集成 Tomcat的方式,集成 Tomcat能够将 tomcat 的目录和 Myeclipse 集成起来,这样 Myeclipse在帮我们复制更改的代码的时候,就知道复制到哪个服务器中。

以下为具体如何集成的步骤:

第一步:
选中 window---->preferences

Tomcat服务器及Servlet的基本概念

第二步:

Tomcat服务器及Servlet的基本概念

部署项目到 Tomcat:

第一步:

Tomcat服务器及Servlet的基本概念

第二步:

Tomcat服务器及Servlet的基本概念

第三步:

Tomcat服务器及Servlet的基本概念

注意:
部署好的项目,每次在 Myeclipse 中进行更改后只要点击ctrl+s 进行保存,Myeclipse 会自动重新复制文件到服务器,并覆盖原有在服务器中的文件。
发布项目:
在 Myeclipse 的 servers 窗口中选择集成的 tomcat 然后点击启动按钮启动即可:

Tomcat服务器及Servlet的基本概念

更改项目部署名:
选择要部署的项目然后右键,选择 properties。然后按图修改部署名即可。

Tomcat服务器及Servlet的基本概念