JavaWeb三大组件 —— Servlet

这篇具有很好参考价值的文章主要介绍了JavaWeb三大组件 —— Servlet。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

servlet

注册servlet

父pom

 pom文件

1、通过注解注册

 2、使用ServletRegistrationBean注册

 API三生三世

第一生Servlet

第二生SpringMVC

今生SpringBoot


servlet

Servlet的作用: 接受请求参数、处理请求,响应结果,(就是写controller层的get、post等)
Servlet的生命周期:

  • void init(ServletConfig):初始化调用一次 
  • void service(ServletRequest request, ServletResponse response):每次处理请求时候调用 
  • void destroy():销毁时候 

实现方式:

  •   实现javax.servlet.Servlet接口;
  •   继承javax.servlet.GenericServlet类; 
  •   继承javax.servlet.http.HttpServlet类;

 常见的都是实现HttpServlet类。重写里边的doGet(),doPost等方法。如图:

JavaWeb三大组件 —— Servlet,java,java,servlet

 注意:

本次示例使用的是jdk为1.8版本;

javax.servlet jakarta.servlet 是 Java Servlet API 的两个版本。

在过去,Java Servlet API 是由 Sun Microsystems(现在是 Oracle)开发和维护的,其包名以 javax.servlet 开头。然而,从 Java EE 8 开始,Servlet API 的维护权转交给了 Eclipse Foundation 的 Jakarta EE 社区,因此,在最新的 Jakarta EE 版本中,Servlet API 的包名已经更改为 jakarta.servlet。

简而言之,javax.servlet 是旧版本的包名,而 jakarta.servlet 是新版本的包名。这个变化是为了反映 Jakarta EE 作为一个独立的开源项目,并且将标准 Java 技术规范的发展移交给了 Jakarta EE 社区。

需要注意的是,虽然包名发生了变化,但是 Servlet API 的核心功能和用法并没有大的改变。大多数代码可以无缝地迁移到 jakarta.servlet 包下,只需要修改导入语句和相应的依赖。

综上所述,javax.servlet 和 jakarta.servlet 的区别仅在于包名的变化,代表了不同版本的 Java Servlet API

注册servlet

JavaWeb三大组件 —— Servlet,java,java,servlet

父pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
<!--        <version>3.1.2</version>-->
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.chensir</groupId>
    <artifactId>springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot</name>
    <description>springboot</description>
    <properties>
        <java.version>8</java.version>
    </properties>

    <packaging>pom</packaging>

    <modules>
        <module>servlet</module>
    </modules>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

 pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.chensir</groupId>
        <artifactId>springboot</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>servlet</artifactId>

    <dependencies>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

1、通过注解注册

JavaWeb三大组件 —— Servlet,java,java,servletJavaWeb三大组件 —— Servlet,java,java,servlet

 2、使用ServletRegistrationBean注册

JavaWeb三大组件 —— Servlet,java,java,servlet

 JavaWeb三大组件 —— Servlet,java,java,servlet

 JavaWeb三大组件 —— Servlet,java,java,servlet

 JavaWeb三大组件 —— Servlet,java,java,servlet

 API三生三世

第一生Servlet

1.新建一个多module的空项目

 JavaWeb三大组件 —— Servlet,java,java,servlet

 文章来源地址https://www.toymoban.com/news/detail-636979.html

2.新建web项目

 JavaWeb三大组件 —— Servlet,java,java,servlet

 

3.选择Java EE8 ,完成

 JavaWeb三大组件 —— Servlet,java,java,servlet

 

4.项目目录结构

 JavaWeb三大组件 —— Servlet,java,java,servlet

 

5.修改访问路径

 JavaWeb三大组件 —— Servlet,java,java,servlet

 JavaWeb三大组件 —— Servlet,java,java,servlet

 

6.查看运行结果

 JavaWeb三大组件 —— Servlet,java,java,servlet

 

7.移除注释,通过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">
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.china.servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>
</web-app>

8.如何自己写一个servlet

 

public class TestServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         // super.doGet(req, resp);
        //查看目前服务器相应编码是什么编码、
       // System.out.println(resp.getCharacterEncoding());
        //设置服务器字符集编码为UTF-8
        //servletResponse.setCharacterEncoding("UTF-8");
        //resp.setHeader("Content-Type","text/html;charset=utf-8");
        //或者只设置下面一个参数就可以,此方法一定要在获取流之前调用才生效
        resp.setContentType("text/html;charset=utf-8");
        //渲染jsp文件
        //RequestDispatcher requestDispatcher = req.getRequestDispatcher("xxx.jsp");
        //requestDispatcher.forward(req,resp);
        
        PrintWriter out = resp.getWriter();
        out.println("<html><body>");
        out.println("<h1>这是TestServlet返回的结果</h1>");
        out.println("</body></html>");

    }
}

9.配置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">
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.china.servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>com.china.servlet.TestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/HelloServlet</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>
</web-app>

10.查看运行结果

 JavaWeb三大组件 —— Servlet,java,java,servlet

 

第二生SpringMVC

1.新建module,名称叫02_springmvc

 JavaWeb三大组件 —— Servlet,java,java,servlet

 JavaWeb三大组件 —— Servlet,java,java,servlet

 2.新建文件夹web

 JavaWeb三大组件 —— Servlet,java,java,servlet

 3.点击确定,就会看到如下图,idea自动给我们创建了web.xml

 JavaWeb三大组件 —— Servlet,java,java,servlet

 这时候web文件夹多一个小点点的标识

JavaWeb三大组件 —— Servlet,java,java,servlet

 4.pom.xml引入相关依赖

 

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2.1-b03</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

5.配置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">
    <!-- 前端控制器 -->
    <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
        <!-- /和/*都是拦截所有请求,/*的范围更大,会拦截jsp文件 -->
    </servlet-mapping>
</web-app>

6.新增springmvc.xml

JavaWeb三大组件 —— Servlet,java,java,servlet

 此时springmvc.xml 为原始xml,没有任何bean数据

JavaWeb三大组件 —— Servlet,java,java,servlet

 7.创建controller文件,TestController

public class TestController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

        ModelAndView mv = new ModelAndView();
        mv.addObject("name", request.getParameter("name"));
        mv.setViewName("test");
        return mv;
    }
}

8.创建web/WEB_INF/pages/test.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
    <body>

        <h1>页面参数:${name}</h1>

    </body>
</html>

 9.配置springmvc.xml

 

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 设置逻辑视图名的前缀 -->
        <property name="prefix" value="/WEB-INF/pages/"/>
        <!-- 设置逻辑视图名的后缀 -->
        <property name="suffix" value=".jsp"/>
    </bean>

    <bean name="/test" class="com.china.controller.TestController"/>

</beans>

10.运行,结果如下

JavaWeb三大组件 —— Servlet,java,java,servlet

 

11.使用注解版

@Controller
public class Test2Controller {

    @RequestMapping("/test2")
    public ModelAndView test(@RequestParam("name") String name){

        ModelAndView mv = new ModelAndView();
        mv.addObject("name", name);
        mv.setViewName("test");
        return mv;

    }
}

 12.springmvx.xml开启controller组件扫描

 

<!--开启controller组件扫描-->
<context:component-scan base-package="com.china.controller"/>

 13.运行结果如下

 JavaWeb三大组件 —— Servlet,java,java,servlet

 

今生SpringBoot

1.通过IDE创建Spring Boot项目

 JavaWeb三大组件 —— Servlet,java,java,servlet

 JavaWeb三大组件 —— Servlet,java,java,servlet

 

2.目录结构

JavaWeb三大组件 —— Servlet,java,java,servlet

 JavaWeb三大组件 —— Servlet,java,java,servlet

 3.新建TestController控制器

@Controller
public class TestController {

    @RequestMapping("/test")
    public ModelAndView test(@RequestParam(name = "name", defaultValue = "刘德华") String name){

        ModelAndView mv = new ModelAndView();
        mv.addObject("name", name);
        mv.setViewName("test");
        return mv;
    }
}

4.新建/resources/templates/test.ftlh模板文件

<html>

<body>
    <h1>页面参数: ${name}</h1>
</body>

</html>

5.运行项目

 JavaWeb三大组件 —— Servlet,java,java,servlet

 

到了这里,关于JavaWeb三大组件 —— Servlet的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JAVA】Eclipse+MYSQL数据库+JSP+基础Servlet开发JavaWeb学生信息管理系统

    目录 前言 一、搭建环境  二、功能实现、 1、   登陆界面 注册按钮 2、学生信息管理系统主界面 3、dao包  4、用户的信息展示,添加,删除,修改功能(只展示添加代码) 5、学生的信息展示,添加,删除,修改功能(只展示添加代码) 6、成绩的信息展示,添加,删除,修

    2024年02月05日
    浏览(65)
  • JavaWeb学习------Servlet

    目录 JavaWeb学习------Servlet Servlet 生命周期 Servlet 生命周期  Servlet 方法介绍 •Servlet 体系结构 Servlet 体系结构 •Servlet urlPattern配置 Servlet urlPattern配置 •XML 配置方式编写 Servlet  XML 配置方式编写 Servlet • 快速入门 • Servlet 执行流程 Servlet 生命周期 对象的生命周期指一个对象

    2024年02月02日
    浏览(39)
  • JavaWeb-初识Servlet

    1. Servlet简介 2. Tomcat安装配置 3. Servlet项目搭建 4. Servlet项目运行 Servlet是什么 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet 可以收集来自网页表单的用户

    2024年02月08日
    浏览(37)
  • Javaweb学习之Servlet

    官方文档:https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html 什么是Servlet:Servlet 在开发动态 WEB 工程中,得到广泛的应用,Servlet是SpringMVC的基础 Servlet的特点 由服务端调用和执行的 用Java语言编写的,本质就是Java类 按照Servlet规范开发 使用idea创建一个工程。 配置好Tomcat。 添

    2024年01月22日
    浏览(52)
  • JavaWeb之Servlet

    在介绍之前需要了解网络通信的三要素: IP:电子设备(计算机)在网络中的唯一标识。 端口:应用程序在计算机中的唯一标识。 0~65536 传输协议:规定了数据传输的规则 而先前的JavaWeb的前篇了解HTML,CSS,以及JavaScript的使用,静态资源和动态资源的分化,都是基于本地缓存的

    2024年02月11日
    浏览(35)
  • 【JavaWeb】5—Servlet

    ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 如果文章对你有所帮助,可以点赞👍收藏⭐支持一下博主~😆 5.1.1 名字 Servlet=Server+applet Server :服务器; applet :小程序;

    2023年04月09日
    浏览(72)
  • JavaWeb之Servlet接口

    什么是Servlet? Servlet是一种基于Java技术的Web组件,用于生成动态内容,由容器管理,是平台无关的Java类组成,并且由Java Web服务器加载执行,是Web容器的最基本组成单元 什么是Servlet容器? Servlet容器作为Web服务器或应用服务器的一部分,通过请求和响应提供Web客户端与Serv

    2024年02月20日
    浏览(36)
  • Javaweb | 初识、servlet应用

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! HTTP协议 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出

    2023年04月16日
    浏览(31)
  • Javaweb基础-tomcat,servlet

    properties配置文件: 由键值对组成 键和值之间的符号是等号 每一行都必须顶格写,前面不能有空格之类的其他符号 xml配置文件:(xml语法=HTML语法+HTML约束)xml约束-DTD /  Schema DOM4J进行XML解析:(jar包 dom4j.jar ) web项目标准文件结构(Tomcat/webapps下): app 本应用根目录 stat

    2024年02月19日
    浏览(50)
  • JavaWeb期末大作业 Javaweb项目 Javaweb Servlet html

    1.进入之后是一个分页查询所有数据的内容  该页面有基础的增删改查  还有分页查询  批量删除  进行条件查询  有什么不对的地方欢迎提出  谢谢  2.增删改查 1.添加 添加成功 2.删除  将刚才添加的OPPO删除 3.修改     4.查询的话就是主页查询所有  页面所用的是分页查询

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包