servlet介绍和如何在idea中写一个servlet程序

这篇具有很好参考价值的文章主要介绍了servlet介绍和如何在idea中写一个servlet程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Servlet

1.1 Servlet简介

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

  • 把实现了Sun公司开发的Servlet接口的java程序叫做Servlet

1.2 第一个Servlet程序

  1. 构建一个普通的Maven项目(可以删除src目录,方便都会创建子项目)(具体如何构建看我上一篇文章)

  2. Maven添加jsp,servlet依赖--

    • 去官网 Maven Repository: Search/Browse/Explore (mvnrepository.com)搜索Java Servlet API找到对应版本复制Maven依赖代码如:

      <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>4.0.1</version>
          <scope>provided</scope>
      </dependency>
      
      • 复制到maven项目中pom.xml的依赖模块中如:

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        

        刷新项目导入依赖

    • 同理到官网找到jsp的依赖JavaServer Pages(TM) API导入

  3. 创建一个子模块(Maven的web项目)

    • 父项目中(pom.xml):

      <modules>
          <module>SonMaven</module>
      </modules>
      
      • 子项目中(pom.xml):

        <parent>
            <artifactId>javaweb</artifactId>
            <groupId>org.example</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        
        • 子项目可以直接使用父项目的jar包,就是java的exntend
  4. 给子项目中的webapp/WEN-INF/web.xml换成最新的,否则以后可能某些东西无法创建

​ 可以参考如:

```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"
         metadata-complete="true">
 
</web-app>
```
  1. 最好在main中创建一个java 一个resources文件夹符合maven规范以后有用

servlet介绍和如何在idea中写一个servlet程序

  1. java文件夹中创建servlet文件

    • 创建一个普通java类

    • 实现servlet接口,我们一般直接通过继承HttpServlet实现

    • servlet接口的另外一个实现类是GenericServlet,实际上是GenericServlet实现了Servlet,而HttpServlet继承GenericServlet

    • servlet接口有一些方法,GenericServlet相对几乎没变,而HttpServle则多了许多方法其中doGet和doPost方法比较重要

      void init(ServletConfig var1) throws ServletException;
      
      ServletConfig getServletConfig();
      
      void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
      
      String getServletInfo();
      
      void destroy();
      
    • 重写HttpServlet的doGet和doPost方法(当然其他方法也可以但是目前用不到)

      public class MyFirstServlet  extends HttpServlet {
      //    由于get和post这是请求实现的不同方式,可以相互调用逻辑都一样
          @Override
          protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //        自己写的
              PrintWriter writer = resp.getWriter();//响应流
              writer.print("Hello,Serlvlet");
          }
      
      
          @Override
          protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              super.doPost(req, resp);
          }
      }
      
  2. 编写Servlet的映射

    为什么需要映射:我们写的是Java程序但是需要通过浏览器访问,而浏览器需要连接web服务器,使用需要再web服务中注册我们写的Servlet,还需要一个浏览器访问路径

    配置到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"
             metadata-complete="true">
    <!--注册servlet-->
        <servlet>
            <servlet-name>hello</servlet-name>
    <!--        刚才写的serverlet位置相对于java文件夹-->
            <servlet-class>MyFirstServlet</servlet-class>
        </servlet>
    <!--    servlet的请求路径-->
        <servlet-mapping>
            <servlet-name>hello</servlet-name>
    <!--        浏览器查看的url-->
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
    </web-app>
    
  3. 配置Tomcat

    之前写过,不再赘述,只是强调一个出现的问题:tomcat部署时没有自己需要部署的项目:

    中deployment点击加号没有出现artifact

    Tomcat是一个开源的Java Servlet容器,用于运行JavaWeb应用程序。在部署应用程序之前,需要在Tomcat中进行相关的配置。 部署应用程序的最常见方式是将应用程序打成.war包。

​ 通过这篇文章解决大概之后刷新maven后,成功出现

servlet介绍和如何在idea中写一个servlet程序

  1. 运行测试:

    这个页面出自index.jsp是主项目默认页面,如果没有servlet覆盖主路径,默认主路径显示这个。我们后面细说

    servlet介绍和如何在idea中写一个servlet程序

​ 这是我们在web.xml 中配置的浏览器访问路径

servlet介绍和如何在idea中写一个servlet程序

1.3 Servlet原理

  • Servlet是由web服务器调用,当Web服务器接收到一个浏览器的请求时,它会先判断请求内容——如果是静态网页数据,Web服务器将会自行处理,然后产生响应信息;如果牵涉到动态数据,Web服务器会将请求转交给Servlet容器。此时Servlet容器会找到对应的处理该请求的Servlet实例来处理,结果会送回Web服务器,再由Web服务器传回用户端。

    针对同一个Servlet,Servlet容器会在第一次收到http请求时建立一个Servlet实例,然后启动一个线程。第二次收到http请求时,Servlet容器无须建立相同的Servlet实例,而是启动第二个线程来服务客户端请求。所以多线程方式不但可以提高Web应用程序的执行效率,也可以降低Web服务器的系统负担。

    参考时序图:servlet介绍和如何在idea中写一个servlet程序

  1. Web Client 向Servlet容器(Tomcat)发出Http请求;

  2. Servlet容器接收Web Client的请求;

  3. Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中;

  4. Servlet容器创建一个HttpResponse对象;

  5. Servlet容器调用HttpServlet对象的service方法,

  6. HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet对象;

  7. HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息;

  8. HttpServlet调用HttpResponse对象的有关方法,生成响应数据;

  9. Servlet容器把HttpServlet的响应结果传给Web Client;

    上述来自该文章
    链接:https://www.jianshu.com/p/7dcd2c689729

1.4 Mapping问题

一个servlet可以指定一个、多个、通用的路径:

<servlet-mapping>
        <servlet-name>hello</servlet-name>
        //这是一个路径,多个就是多粘贴几个<servlet-mapping>每个给的路径不同
        <url-pattern>/hello</url-pattern>
    	//通用:  /hello/后面使用的所有路径都到这个servlet
    	//<url-pattern>/hello/*</url-pattern>
        //后面这个的意思是以.aaa结尾的都可以
    	//<url-pattern>*.aaa</url-pattern>
    </servlet-mapping>

另外当出现两个servlet路径重叠的情况,路径范围小的优先级高文章来源地址https://www.toymoban.com/news/detail-481895.html

到了这里,关于servlet介绍和如何在idea中写一个servlet程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 第一个 Servlet 程序

    使用 IDEA 创建一个 Maven 项目. Name:javaservlet2 Location:选择要存放的路径 Language:Java Build system:Maven 点击Create按钮 依赖包来源:     dependencies         !-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --         dependency             groupIdjavax.servlet/groupId     

    2024年02月01日
    浏览(54)
  • 第一个Servlet程序

    Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app. 大家需要注意,网页可以分为两类: 1.静态页面:网页内容始终固定的页面 2.动态页面:用户不同/时间不同/输入参数不同时页面的内容会发生变化 Servlet主要进行的工

    2023年04月17日
    浏览(34)
  • 解决 IDEA出现 java: 程序包javax.servlet不存在 问题

            1.点击File → Project Strcture 2.转到如下页面:第一步:点击Libraries,第二步:点击+   3.出现New Project Library,点击Java   4.弹出如下页面:在Tomcat解压文件夹下选择lib文件找到servlet-api.jar,点击ok   5.应用该包,如图所示,点击Apply即可  完成以上步骤Tomcat就可以运行啦

    2024年02月04日
    浏览(57)
  • 创建第一个Servlet程序“hello world“(创建流程+页面出错情况)

    目录 🐲 1. 动态页面之Servlet 🐲 2. 写第一个Servlet的程序:\\\"hello world!\\\" 🦄 2.1 创建项目 🦄 2.2 引入Servlet依赖 🦄 2.3 创建目录结构 🦄 2.4 编写代码  🦄 2.5 打包程序 🦄 2.6 部署程序 🦄 2.7 验证程序 🐲3. 创建Servlet流程简化 🐲4. 工作原理流程分析 🐲5. 访问页面出错 HTTP服务器

    2023年04月11日
    浏览(68)
  • 关于IDEA在写文件上传时,找不到javax.servlet.http.HttpServletRequest如何解决

            当我们在使用IDEA是,发现需要使用javax.servlet包下类时,IDEA无法识别类或是方法,会在控制台提示,无法找到javax.servlet.http.HttpServletRequest。此时我们需要按照一下的步骤进行导包即可。 1、选中项目所在的Module或工程名,右键单击Open Module Settings或者单击File——Pro

    2024年02月15日
    浏览(46)
  • 【JavaEE】Tomcat的安装和使用、创建Mevan项目使用Servlet写一个程序

    目录 前言 一、Tomcat的下载和安装 二、写一个简单的Servlet项目 1、创建一个Maven项目 2、引入依赖  3、创建目录   4、编写Servlet代码。 5、打包程序 6、将程序部署到Tomcat上 7、验证程序运行结果  三、在IDEA上安装Smart Tomcat插件 四、Servlet中的一些常见错误 我我们制作一个网站

    2024年02月17日
    浏览(48)
  • 一个简单的前后端交互——登录注册页面(升级版)idea代码篇(2:Maven:Javaweb项目)使用MyBatis:Mapper,servlet+Tomcat

    前言:本篇前后端交互实现代码 。详细项目搭建见上篇 先贴一张登录界面和包结构:   1.Mapper 2.pojo 3.util 4.web 5.Login.html 6.CSS 我的企业版过期了,不能演示跳转页面了。但测过没问题。

    2024年02月11日
    浏览(53)
  • 表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序

    目录 表白墙引入数据库  再谈Cookie和session 得到Cookie ​编辑 设置Cooie 使用Cookie编写一个登入的小界面 1.先引入数据库的依赖(驱动包),5.1.49 pom.xml中,在之前的两个之前,再去添加一个 2.创建本地的数据库 3.之前的代码中有一段可以删掉了 这个代码需要删除,因为我们已

    2024年02月08日
    浏览(57)
  • 解决在Intellij IDEA中无法创建Servlet类的问题/New中没有Servlet类/创建不了Servlet类

            新手在学习Servlet相关知识的时候, 一些课程往往会告知新手去使用IDEA自带的模板来创建Servlet, 这样减少了注解等麻烦, 降低了工作量.         然而, 如下图所示, 很多人发现在自己的new一栏不存在Servlet类(如下图)         网上的解决办法很多都是复制粘贴之流, 改

    2024年02月08日
    浏览(58)
  • IDEA中创建web项目(配置tomcat,tomcat启动报程序包javax.servlet.http不存在,tomcat控制台乱码问题)

    在浏览器地址栏输入: http://localhost:8080/webidea/ 单击工具栏按钮 1、 点击Help = Edit custom VM Options,在最后面添加 “-Dfile.encoding=UTF-8” 2、点击Run菜单的 Edit Configurations,在tomcat配置中的 VM option中添加 “-Dfile.encoding=UTF-8” 3、在第二步的Startup/Connection页签的Run和Debug添加一个key为

    2024年02月21日
    浏览(116)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包