✅作者简介:热爱国学的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知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。
版权归原作者 Java Fans 所有, 如有侵权,请联系我们删除。