0


一文带你学透Java Servlet(建议收藏)

在这里插入图片描述

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:前端开发者成长之路
✨特色专栏:国学周更-心性养成之路
🥭本文内容:一文带你学透Java Servlet(纯干货建议收藏)
更多内容点击👇
      Druid连接池和Apache的DBUtils使用

文章目录

在这里插入图片描述

一、程序开发体系结构

  随着网络技术的不断发展,单机的软件程序不足以满足网络计算的需求。为此,各种各样的网络程序开发体系结构应运而生,这当中,运用最多的网络应用程序开发体系结构主要分为两种:一种是基于浏览器/服务器的B/S结构;另外一种是基于客户端/服务器的C/S结构。

1.1 C/S体系结构

(1)C/S(Client/Server,客户端/服务器)体系结构由美国Borland公司最早研发。

(2)特点:必须在客户端(用户设备上)安装特定的软件。

(3)优点:图像效果显示比较好(比如:3D游戏)。

(4)缺点:服务器的软件和功能进行升级,客户端也必须升级,否则使用不了新的功能,不利于维护。

(5)常见的C/S体系结构程序:QQ、微信等。

请添加图片描述

1.2 B/S体系结构

(1)B/S(Bowser/Server,浏览器/服务器)体系结构由美国微软公司研发。

(2)特点:只需要一个浏览器通过http协议就可以访问,不需要在客户端(用户设备上)安装特定的软件。

(3)优点:服务功能的升级只需要升级服务器端,浏览器中不需要做任何升级操作。

(4)缺点:图形显示效果不如C/S体系结构。

(5)常见的B/S体系结构:淘宝、京东、支付宝等。

请添加图片描述

二、Web服务器

2.1 概念

2.1.1 什么是Web

(1)Web(World Wide Web)称为万维网,简单理解就是一个网站,它是Internet主机上提供给外界访问的资源、

(2)Internet上提供给外界访问的资源大体上分为两种,即静态资源(静态网站)和动态资源(动态网站)。

  静态资源:指Web页面中提供给用户浏览的数据是固定不变的,页面使用HTML+CSS实现。

  动态资源:指Web页面中提供给用户浏览的数据是由程序产生的,具有交互性(交互性是指网页可以根据用户的要求动态改变或响应),内容可以自动更新,并且内容会根据访问的时间和访问者而改变,甚至不同设备访问Web页面看到的内容也各不相同。页面使用Servlet+JSP等技术实现。

(3)Java Web是用Java技术来解决Web领域的相关技术的总和。Web包括Web服务器和Web客户端两部分。

2.1.2 什么是Web服务器

Web服务器发布Web应用、运行Web应用的容器。只有将开发好的Web项目部署在Web服务器中,才能使网络中的用户通过浏览器来访问Web应用。Web服务器的主要功能就是提供网上信息浏览服务。

2.2 常见Web服务器

开源的Web服务器:

1)Tomcat(主流Web服务器之一,非常适合初学者学习)。

2)jetty(淘宝使用,运行效率比Tomcat高)。

3)resin(新浪使用,所有开源服务器软件中,运行效率最高的)。

  上面三个的用法从代码角度看完全相同,只是在开启、关闭服务软件时用的命令稍微有点区别。

收费的Web服务器:

1)WebLogic,Oracle公司开发的。

2)WebSphere,IBM公司开发的。

  收费的Web服务器提供相应的服务与支持,软件比较大,资源消耗大。

2.3 Tomcat服务器

(1)Tomcat是Apache基金会开发的一个小型的轻量级应用服务器,技术先进,性能稳定,而且是免费的,占用系统资源小,运行速度快。

(2)Tomcat是一个运行Servlet和JSP Web应用软件。基于Java的Web应用软件容器。Tomcat Server是根据Servlet和JSP规范运行的,因此可以说Tomcat Server也实行了Apache规范,且比绝大多数商业应用软件服务器要好。

2.3.1 Tomcat的下载

进入Tomcat官网下载(https://tomcat.apache.org/),其安装文件有多种格式,其中zip文件是Windows系统下的压缩版本。

2.3.2 Tomcat的安装

Tomcat无需安装,只需要将压缩包下载后,将其解压到一个文件夹中就可以使用。

注意:
  1)文件夹名称中不要特殊符号。
  2)文件夹名称中不要包含中文字符。
  3)不建议将Tomcat解压放在磁盘层次很多的文件夹中

2.3.3 Tomcat的目录结构

Tomcat压缩包解压后,其中的各个子文件夹说明如下:
文件夹作用说明bin存放启动和关闭Tomcat的可执行脚本文件startup.bat启动Tomcat
shutdown.bat停止Tomcatconf存放Tomact服务器的各种配置文件这是一个非常重要的目录,这个目录下的server.xml文件和web.xml文件最重要。
server.xml:配置整个服务器信息,例如修改端口号,设置编码格式等。
web.xml:项目部署描述文件,这个文件中注册了很多MIME类型,即文档类型lib存放Tomcat服务器的支撑jar包Tomcat的类库,里面存放Tomcat运行时所需要的jar文件logs存放Tomcat的日志文件该文件中记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,异常也会记录在日志文件中temp存放Tomcat运行时产生的临时文件这个目录下的东西在停止Tomcat后删除webapps存放各种Web应用存放Web项目的目录,其中每个文件夹都是一个项目,其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。workTomcat的工作目录运行时生成的文件,最终运行的文件都在这个文件夹中。当客户端用户访问一个jsp文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java文件和class文件都会存放在这个目录下

2.3.4 Tomcat的启动

进入Tomcat服务器的安装目录bin文件中,双击startup.bat启动程序,出现如下界面。
请添加图片描述

打开浏览器中,在地址栏中输入http://localhost:8080或者http://127.0.0.1:8080回车,会出现Tomcat的访问页面。说明Tomcat服务器启动成功。

请添加图片描述

2.3.5 Tomcat的停止

双击shutdown.bat即可关闭Tomcat启动窗口。

2.3.6 修改Tomcat端口号

  8080是Tomcat默认的端口,有时候可能会被占用,这时可以通过conf文件夹下的server.xml文件修改端口号,已解决端口号冲突的问题。端口号修改完之后,要重新启动Tomcat并在浏览器的地址栏中使用新的端口号访问Tomcat服务器。

请添加图片描述

2.3.7 项目部署及静态资源访问

  Tomcat是Web服务器,是一个容器(依然可以理解为装数据的容器),我们开发的项目应用需要部署在webapps文件夹下面,然后启动Tomcat服务器,在浏览器中通过特定的URL访问Web项目的页面。

2.3.7.1 创建项目

1)在webapps中建立项目文件夹,例如,webProject01

2)在webProject01文件中创建WEB-INF文件夹,存放项目的核心内容

3)在WEB-INF文件夹中,创建如下文件夹和文件:

–>创建classes文件夹,存放.class文件

–>创建lib文件夹,存放jar文件

–>创建web.xml项目配置文件(这个文件可以到ROOT项目向的WEB-INF中复制)

4)把你编写的helloTomcat.html页面复制到webProject01文件夹中,webProject01页面与WEB-INF在同级目录。

2.3.7.2 通过URL访问项目

 打开浏览器,在浏览器地址栏中输入URL:http://localhost:8080/webProject01/helloTomcat.html,回车,即可访问

2.3.7.3 Tomcat响应流程

请添加图片描述

2.3.8 Tomcat常见问题

2.3.8.1 Tomcat控制台闪退

闪退的问题是由JAVA_HOME配置导致的,检查JAVA_HOME配置是否正确。

2.3.8.2 404

出现404问题是因为访问资源不存在,也就是访问路径不对(文件名不对)。

请添加图片描述

2.3.8.3 500

出现500问题是服务器端的问题,一般是程序逻辑有问题。

请添加图片描述

三、Servlet(特别重要)

3.1 Servlet概念

1)Servlet:Server Applet的简称,是运行在Web服务器端的Java程序,可交互式的处理客户端发送到服务器端的请求,并完成响应操作,它使用Java语言编写。

2)Servlet可实现动态网页。

3)Servlet是JavaWeb开发程序的基础,是一个标准,由SUN定义,具体细节由Servlet容器进行实现,如Tomact、JBoss等。Servlet是JavaEE规范(一套接口)的一个组成部分。

  Java Servlet 通常情况下与使用 CGI(Common Gateway Interface,公共网关接口)实现的程序可以达到异曲同工的效果。但是相比于 CGI,Servlet 有以下几点优势:

1)性能明显更好。

2)Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。

3)Servlet 是独立于平台的,因为它们是用 Java 编写的。

4)服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。

5)Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

在这里插入图片描述

3.2 Servlet作用

1)接收客户端请求,完成相关操作

2)动态生成网页(页面数据可变,不同用户页面数据不同)

3)将包含操作结果的动态网页响应给客户端。

3.3 Servlet开发步骤

3.3.1 搭建开发环境

  将Tomcat安装路径下lib文件夹中与Servlet相关的jar包(lib\servlet-api.jar)配置到classpath环境变量中。

3.3.2 创建项目

1)在webapps中建立项目文件夹,例如,webProject02

2)在webProject02文件中创建WEB-INF文件夹,存放项目的核心内容

3)在WEB-INF文件夹中,创建如下文件夹和文件:

–>创建classes文件夹,存放.class文件

–>创建lib文件夹,存放jar文件

–>创建web.xml项目配置文件(这个文件可以到ROOT项目向的WEB-INF中复制)

4)在classes中创建类的包文件夹,在文件夹中通过实现java.servlet.Servlet接口的方式编写MyServlet类。重写java.servlet.Servlet接口中的方法,在重写的核心方法service()中编写输出语句,打印访问结果。

package com.cxyzxc.www.servlet01;import java.io.IOException;import java.util.Date;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;publicclassServlet01implementsServlet{@Overridepublicvoiddestroy(){}@Overridepublic ServletConfig getServletConfig(){return null;}@Overridepublic String getServletInfo(){return null;}@Overridepublicvoidinit(ServletConfig arg0)throws ServletException {}@Overridepublicvoidservice(ServletRequest arg0, ServletResponse arg1)throws ServletException, IOException {
        
        System.out.println("My First Servlet!Very Good!");}}

3.3.3 部署Servlet

1)编译Servlet01.java文件,生成Servlet01.class字节码文件

2)将Servlet01.class文件放在Web项目的WEB-INF文件里的classes文件夹中

3.3.4 配置Servlet

编写WEB-INF文件夹中的项目配置文件web.xml。

<?xml version="1.0" encoding="UTF-8"?><web-appxmlns="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"metadata-complete="true"><!-- 1、添加Servlet节点--><servlet><!-- 你的Servlet类名称--><servlet-name>MyServlet</servlet-name><!-- 你的Servlet类的完整路径--><servlet-class>com.cxyzxc.www.servlet01.Servlet01</servlet-class></servlet><!-- 2、 添加servlet-mapping节点--><servlet-mapping><!--  这个地方的servlet-name值要和上面servlet-name值保持一致--><servlet-name>MyServlet</servlet-name><!-- url-patter配置的内容是浏览器地址栏中URL里项目名称后的资源内容--><url-patter>/hello</url-patter></servlet-mapping></web-app>

3.3.5 测试运行

1)启动Tomcat

2)打开浏览器,在浏览器地址栏中输入http://localhost:8080/webProject02/hello,可以在Tomcat窗口中看到输出“My First Servlet!Very Good!”内容。

四、IDEA中创建Web项目

4.1 创建Web项目

4.1.1 创建项目

  1、打开IDEA,单击“New Project”或者通过File–>new–>Project,在弹出的对话框中输入项目名称,其它的默认选择,点击finish按钮

请添加图片描述

请添加图片描述

  2、为项目添加Web框架支持,右键单击创建的项目,点击Add Framework Support,在弹出的对话框中勾选Web Application(4.0)及Create web.xml复选框,单击“OK”按钮,完成添加。

请添加图片描述

请添加图片描述

  3、添加依赖包,右键单击WEB-INF文件夹,在弹出的对话框中选择New–>Directory命令,创建lib文件夹,将Tomcat安装目录下lib文件夹中的servlet-api.jar文件添加到lib文件夹中。

请添加图片描述

  4、在servlet-api.jar文件上右击鼠标,选择Add As Library,将jar包添加到Library中

4.1.2 编写Servlet类

1、在src上右击鼠标–>new–>package–>输入com.cxyzxc.www.servlet01包名(包名你可以自己取)–>回车

2、在包上右击鼠标–>new–>Java Class–>输入ServletDemo01类名–>回车

3、编写ServletDemo01t类,实现Servlet接口,重写接口中的5个方法,在service()方法中输出内容

package com.cxyzxc.www.servlet01;import javax.servlet.*;import java.io.IOException;publicclassServletDemo01implementsServlet{@Overridepublicvoidinit(ServletConfig servletConfig)throws ServletException {}@Overridepublic ServletConfig getServletConfig(){return null;}@Overridepublicvoidservice(ServletRequest servletRequest, ServletResponse servletResponse)throws ServletException, IOException {
        System.out.println("IDEA中的第一个Servlet案例");}@Overridepublic String getServletInfo(){return null;}@Overridepublicvoiddestroy(){}}

4、编译ServletDemo01.java文件,生成ServletDemo01.class文件。在软件上面点击Build–>Build Project,等待片刻,生成out文件夹,里面包含编译后的class文件

请添加图片描述

5、编写web.xml配置文件

<?xml version="1.0" encoding="UTF-8"?><web-appxmlns="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_4_0.xsd"version="4.0"><servlet><servlet-name>ServletDemo01</servlet-name><servlet-class>com.cxyzxc.www.servlet01.ServletDemo01</servlet-class></servlet><servlet-mapping><servlet-name>ServletDemo01</servlet-name><url-pattern>/demo01</url-pattern></servlet-mapping></web-app>

4.2 手动部署项目

1)在Tomcat服务器的webapps文件中,创建一个项目文件夹,例如webProject03

2)将IDEA软件中WEB-INF文件夹整体复制到webProject03文件夹中

3)在WEB-INF文件夹中创建classes文件夹,将编译后生成的ServletDemo01.class文件所在的文件夹一起复制到classes文件夹中

4)启动Tomcat服务器,打开浏览器,在浏览器地址栏中输入http://localhost:8080/webProject03/demo01,可以在Tomcat窗口中看到输出“IDEA中的第一个Servlet案例”内容。

4.3 自动部署项目

  上述操作中,虽然是在IDEA软件中完成了Servlet代码的编写以及编译,但是还需要手动将WEB-INF文件夹复制到Tomcat的项目文件夹中去,并需要手动在WEB-INF文件中创建classes文件夹,然后将IDEA中编译后的class文件复制到classes文件夹中,比较麻烦。另外,当你的Java文件改变后,你需要重新编译java文件生成class文件,然后再将class文件复制到classes文件夹中,再重新启动Tomcat服务器才能访问资源,非常的麻烦。所以,我们可以在IDEA中集成Tomact服务器,实现自动部署。

4.3.1 IDEA集成Tomcat

1、 点击File–>Settings…

请添加图片描述

2、选择双击Build,Execution,Deployment–>Application Servers,点击+号,选择Tomcat Server

请添加图片描述

3、选择Tomcat服务器的安装路径,点击ok,Tomcat服务器就集成到IDEA中了

请添加图片描述

4、再次点击File–>Settings…–>Build,Execution,Deployment–>Application Servers,点击+号,选择Tomcat Server,可以看到Tomcat服务器在IDEA中

请添加图片描述


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

标签: servlet java 服务器

本文转载自: https://blog.csdn.net/hh867308122/article/details/128068029
版权归原作者 Java Fans 所有, 如有侵权,请联系我们删除。

“一文带你学透Java Servlet(建议收藏)”的评论:

还没有评论