首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >jsp---Servlet2.5和Servlet3的区别

jsp---Servlet2.5和Servlet3的区别

作者头像
兮动人
发布于 2021-06-11 03:21:11
发布于 2021-06-11 03:21:11
70700
代码可运行
举报
文章被收录于专栏:兮动人的博客兮动人的博客
运行总次数:0
代码可运行

1.纯手工方法创建第一个Servlet 步骤: 编写一个类,继承HttpServlet 重写doGet()、doPost()方法 编写web.xml 中的servlet映射关系

2.借助于Eclipse快速生成Servlet 直接新建Servlet即可!(继承、重写、web.xml 可以借助Eclipse自动生成)

可以在web.xml下看到直接生成配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<servlet>
    <description></description>
    <display-name>WelcomeServlet2</display-name>
    <servlet-name>WelcomeServlet2</servlet-name>
    <servlet-class>com.xdr.servlet.WelcomeServlet2</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>WelcomeServlet2</servlet-name>
    <url-pattern>/WelcomeServlet2</url-pattern>
  </servlet-mapping>

在webcontext下看index.jsp请求什么(如:WelcomeServlet),创建的Servlet就用请求名(WelcomeServlet)来作为Servlet的类名,因为大多数Servlet的name都是和请求映射的名一样的。

创建Servlet3.0时,有的时候会找不到web.xml配置文件,以下有两种解决方法:

创建时勾选。

  • 如果不勾选也可以等项目创建好了,在进行如下操作: 右击项目->Java EE Tools->Generate Deplyment Descriptor Stub 后就会生成web.xml文件

Servlet3.0,与Servlet2.5的区别:

Servlet3.0不需要在web.xml中配置,但 需要在 Servlet类的定义处之上编写 注解@WebServlet("url-pattern的值") 匹配流程: 请求地址 与@WebServlet中的值 进行匹配,如果匹配成功 ,则说明 请求的就是该注解所对应的类 Servlet3.0请求流程:通过请求地址去匹配@WebServlet(“url-pattern”),匹配成功后,找到该注解所属的类,找到后直接去执行里面的doGet或doPost方法

下方的这段代码就等于此注解@WebServlet("url-pattern的值")

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<servlet>
    <servlet-name>WelcomeServlet</servlet-name>
    <servlet-class>com.xdr.servlet.WelcomeServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>WelcomeServlet</servlet-name>
    <url-pattern>/WelcomeServlet</url-pattern>
  </servlet-mapping>

项目根目录:WebContent、src(所有的构建路径) 例如: WebContent中有一个文件index.jsp src中有一个Servlet.java

如果: index.jsp中请求 ,则 寻找范围:既会在src根目录中找 也会在WebContent根目录中找

如果:index.jsp中请求,寻找范围:先在src或WebContent中找a目录,然后再在a目录中找abc

web.xml中的 /:代表项目根路径

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://localhost:8888/Servlet25Project/

jsp中的/: 服务器根路径

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://localhost:8888/

web.xml中的“/”代表是项目名后面的“/”,jsp的“/”代表的是项目名前面的“/ ”

构建路径、WebContent:根目录

4.Servlet生命周期:5个阶段

加载 初始化: init() ,该方法会在 Servlet被加载并实例化的以后 执行 服务 :service() ->doGet() doPost 销毁 :destroy(), Servlet被系统回收时执行 卸载

Servlet执行流程案例库 ServletTest.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.xdr.servlet;

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

/**
 * Servlet implementation class ServletTest
 */
public class ServletTest extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	@Override
		public void init() throws ServletException {
			// TODO Auto-generated method stub
			System.out.println("init初始化...");
		}
	
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("destroy...");
	}
   
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		System.out.println("service的具体实现(doGet...doPost...)...");
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		doGet(request, response);
	}

}

index2.jsp

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="ServletTest">WelcomeServlet</a><br><br>
	<form action="ServletTest" method="post">
		<input type="submit">
	</form>
</body>
</html>

当点击任一请求访问时,控制台输出:

关闭Tomcat时:

init(): a.默认第一次访问 Servlet时会被执行 (只执行这一次) b.可以修改为 Tomcat启动时自动执行 i.Servlet2.5: web.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<servlet>
				...
 <load-on-startup>1</load-on-startup>
</servlet>
其中的“1”代表第一个去执行。

Tomcat启动时就会初始化init()Servlet 执行结果:

ii.Servlet3.0 @webServlet()里只有一个参数可以省略value不写,多个参数就不能省略。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@WebServlet( value="/WelcomeServlet" ,loadOnStartup=1  )

service() ->doGet() doPost :调用几次,则执行几次 destroy():关闭tomcat服务时,执行一次。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
jsp--MVC设计模式和Servlet2.5入门案例
V:View,视图: 用于展示、以及与用户交互。使用html js css jsp jquery等前端技术实现
兮动人
2021/06/11
4920
jsp--MVC设计模式和Servlet2.5入门案例
E011Web学习笔记-Servlet
实际上Servlet是一个接口,定义了Java类被浏览器访问到(或者说被Tomcat识别的)规则;
訾博ZiBo
2025/01/06
1260
E011Web学习笔记-Servlet
开发一个Servlet示例
Servlet响应请求步骤: Servlet是一个基于Java技术的Web组件,运行在服务器端,用户利用Servlet可以很轻松地扩展Web服务器的功能,使其满足特定的应用需要。Tomcat是一个常用
YGingko
2017/12/28
5850
servlet就是这么简单
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
好好学java
2018/09/21
1K0
servlet就是这么简单
代码审计 | Java Web 核心技术 - Servlet
Servlet 是 Java Web 容器中运行的小程序,Servlet 原则上可以通过任何客户端-服务端协议进行通信,但它们常与 HTTP 一起使用,因此 Servlet 通常作为 “HTTP Servlet”的简写。
TeamsSix
2022/09/20
5610
代码审计 | Java Web 核心技术 - Servlet
Servlet 简介
当一个 Servlet 被第一请求的时候,Servlet 引擎就初始化这个 Servlet,在这里是调用 init()方法完成必需的初始化工作。而且这个对象一致在内存中活动,Servlet 为后续的客户请求新建线程,直接调用Servlet 中的 service()方法提供服务,不再初始化 Servlet。
兮动人
2021/06/11
4030
Servlet 简介
JavaWeb——一文带你入门Servlet(生命周期、注解配置方法、IDEA与tomcat的相关配置)
Servlet在JavaWeb中非常重要,在JavaWeb的核心知识体系都是围绕Servlet来转的。
Winter_world
2020/09/25
1.1K0
JavaWeb——一文带你入门Servlet(生命周期、注解配置方法、IDEA与tomcat的相关配置)
Servlet
服务器在接收到浏览器的请求后,会自动调用对应的逻辑代码进行请求处理。但是逻辑代码是由程序员编写并放到服务器中,那么服务器怎么知道该怎么调用并调用哪个类和哪个方法来进行请求处理?
Carlos Ouyang
2022/05/10
1.1K0
Servlet
Java Web Servlet (Part A)- Servlet &amp; HttpServlet
Servlet是JavaEE规范的一种,主要是为了扩展Java作为Web服务的功能,统一接口。由其他内部厂商如tomcat,jetty内部实现web的功能。如一个http请求到来,容器将请求封装为servlet中的HttpServletRequest对象,调用init(),service()等方法输出response,由容器包装为httpresponse返回给客户端的过程。
RiemannHypothesis
2022/09/26
7600
Java Web Servlet (Part A)- Servlet &amp; HttpServlet
Servlet再度学习
Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
全栈程序员站长
2021/04/07
3510
什么是Servlet(原理,从访问到方法)
Servlet是SUN公司提供的一门用于开发动态WEB资源的技术。SUN公司在其API中提供了一个Servlet接口,用户若想开发一个动态WEB资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
云扬四海
2019/06/05
1.5K0
什么是Servlet(原理,从访问到方法)
JSP Servlet简单实现
Jsp和Servlet个人感觉使用起来没有太大区别的,查了一下,说是jsp是Servlet的简化。这说明其本质是一样的,这里简单实现一下jsp和Servlet交互,比较简单,就不多说了,看代码吧。
the5fire
2019/02/28
1.9K0
Java Servlet详解(体系结构+注解配置+生命周期)
顾名思义:服务端的小程序 Servlet只是一个接口,定义了Java被浏览器访问到(Tomcat)的识别规则,我们需要定义一个类来实现Servlet接口
一只胡说八道的猴子
2020/09/27
6200
Java Servlet详解(体系结构+注解配置+生命周期)
10-Servlet
Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则
Ywrby
2022/10/27
3030
10-Servlet
Servlet基础——快速了解什么是Servlet
来源 | 为知笔记| 作者 | 水之笔记 一、什么是servlet servlet是在服务器端运行的一个小程序。一个servlet就是一个java类,并且可以通过“请求-响应”编程模型来访问的这个驻留
Tanyboye
2018/07/02
6460
Java Web 从入门到"改行"(2)--Servlet简介
JavaWeb应用开发的核心技术就是JSP、Servlet与JavaBean。Servlet 作为 Java Web 应用开发的核心技术之一,JSP 以及其他很多优秀的Web框架【Struts2】都是基于 Servlet 实现的。
流川枫
2018/09/12
5900
Java Web 从入门到"改行"(2)--Servlet简介
JSP(4)----servlet编程3
由Servlet容器管理的对象,过滤器的功能是在原数据和目的数据之间起过滤作用的中间组件。
py3study
2020/01/14
7640
Tomcat & Servlet的学习
web相关概念回顾: 1. 软件架构 1. C/S:客户端/服务器端 2. B/S:浏览器/服务器端 2. 资源分类 1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析 * 如: html,css,JavaScript 2. 动态资源:每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回给浏览器 * 如:servlet/jsp,php,asp.
Rochester
2020/09/01
4150
Servlet开发技术,创建,以及Servlet的配置,web.xml的配置
直接上图,不废话!!! 第一:首先在Eclipse的包资源管理器中,单机鼠标右键,在弹出的快捷键菜单中选择“新建”/Servlet命令,在弹出的对话框中输入新建的Servlet所在的包和类名,然后单击
别先生
2017/12/29
7070
Servlet开发技术,创建,以及Servlet的配置,web.xml的配置
JAVAWeb 浅学笔记
有IDEA,有Tomcat(去网上找一下tomcat官方网站,下载9版本的即可,10版本的可能因为与IDEA版本不适而发生各种报错),有Maven,Idea虽然自带有Maven,但其功能还是有些受限,最好还是去官网下载一下Maven到本地而后导入到IDEA中
用户9691112
2023/05/18
4300
JAVAWeb 浅学笔记
相关推荐
jsp--MVC设计模式和Servlet2.5入门案例
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档