jar 工程我怎么在网页上url访问某一个方法_Servlet 简介并手动部署第一个 Servlet 案例...

b232881f88e119f90a95c500f1ce249c.gif

一、Servlet 的概念和特点

1、Servlet 概念引入

问题:

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

解决:

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

实现:

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

2、Servlet 的特点

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

二、手动部署第一个 Servlet 案例

在学习 Servlet 的之前,我们先尝试手写一个简单的 Servlet 案例,并手动的将其部署到 Tomcat 服务器中。

项目环境:Servlet 4.0 JDK 1.8 NotePad++ Tomcat 9.0.37

1、第一个 Servlet 程序

在学习了服务器并成功安装后,我们知道当浏览器发送请求给服务器后,服务器会调用并执行对应的逻辑代码进行请求处理。逻辑代码是由程序员自己编写然后放进服务器进行运行,其实就是 Servlet 程序。

1)使用 NotePad++ 编写第一个 Servlet 类:HelloWorld.java

创建普通的 Java 类并继承 HttpServlet
public class HelloWorld extends HttpServlet{

}
覆写 service 方法
public class HelloWorld extends HttpServlet{
	public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		
	}
}
在 service 方法中书写逻辑代码
public class HelloWorld extends HttpServlet{
	public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		PrintWriter out = response.getWriter();
		out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>");
		out.println("<HTML>");
		out.println("<HEAD>");
		out.println("<TITLE>First Servlet</TITLE>");
		out.println("</HEAD>");
		out.println("<BODY>");
		out.println("<font color='red'>First Servlet!</font>");
		out.println("</BODY>");
		out.println("</HTML>");
		out.flush();
		out.close();
	}
}
导包
package com.bjsxt.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorld extends HttpServlet{
	public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		PrintWriter out = response.getWriter();
		out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>");
		out.println("<HTML>");
		out.println("<HEAD>");
		out.println("<TITLE>First Servlet</TITLE>");
		out.println("</HEAD>");
		out.println("<BODY>");
		out.println("<font color='red'>First Servlet!</font>");
		out.println("</BODY>");
		out.println("</HTML>");
		out.flush();
		out.close();
	}
}

2、编译 Servlet

注意:由于 Servlet 除了导入 jre 自带 jar 包外,还导入了 Tomcat 里面的 jar 包(servlet-api.jar),所以在编译的时候需要配置引用 jar 包的临时环境变量,语法如下:

javac -classpath "D:apache-tomcat-9.0.37libservlet-api.jar" HelloWorld.java
动态演示:

4c03260aaec14f55a96f4edd57dacd6a.gif

3、创建 web.xml

web.xml 是项目的部署描述文件,是 JavaWeb 工程的配置文件,通过 web.xml 文件可以配置 servlet、filter 等技术。Tomcat 启动时会先解析该配置文件获取项目的配置信息。

web.xml 文件中的头信息
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="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">
</web-app>
在 web.xml 文件中配置 Servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="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 配置包括两个组成部分
  				servlet:配置 servlet 类路径
				servlet-mapping:配置访问方式
			两个组成部分的 servlet-name 的值必须一致。
         -->	
         <servlet>
		<servlet-name>first</servlet-name>
                <!-- 书写 servlet 的全限定路径(包名+类名) -->
		<servlet-class>com.bjsxt.servlet.HelloWorld</servlet-class>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>first</servlet-name>
                <!-- 配置 servlet 的访问别名 -->
		<url-pattern>/first</url-pattern>
	</servlet-mapping>
</web-app>

4、部署 Servlet

Web 工程目录结构:

fdb4174d2a4c60a8c584827d264a70cd.png

根据 Web 工程结构图,在 Tomcat 安装目录下的 webapps 目录下创建对应的目录结构,并将编译好的字节码文件以及 web.xml 配置文件放到指定的目录结构下:

动态目录结构展示:

c60d7f4fb98b5ec9e514a06864341dea.gif

5、启动 Tomcat ,访问 Servlet

5b6612c11a59ab25335dcfb14b09d35e.png
项目部署成功
知乎视频​www.zhihu.com

希望能够帮到大家,有问题的可以留言讨论哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值