• 1.servlet简介 + 我的第一个servlet程序


    在使用servlet之前我们需要先创建一个javaee的web项目,一个web项目通常包含下面一些文件:

    src
    web
        WEB-INF
            lib
            classes
        index.jsp
    
    • src:存放java源代码
    • web:存放静态资源和动态资源
    • WEB-INF:该目录下的所有文件无法从浏览器中直接访问
    • lib:存放相关的jar包
    • classes:存放编译后的class文件
    • index.jsp:web项目中默认访问的首页

    application context(项目上下文),通过配置项目上下文可以在tomcat部署多个项目。

    什么是servlet

    servlet是一门用于开发动态web资源的技术,可以运行在Web服务器中的小型Java程序,有时也叫做服务器端的小应用程序,servlet是server applet两个单词的组合而成。servlet 可以通过 HTTP协议接收和响应来自 Web 客户端的请求。

    servlet的语法跟JavaSE是一样的并且能够使用JavaSE中的API,要想创建一个servlet并使用的话可以分为以下几个步骤:

    1. 创建一个javaee的web项目
    2. 编写一个Java类,实现javax.servlet.Servlet接口,并重写该接口中的抽象方法
    3. 在web.xml文件中配置该servlet(如果使用注解方式的话,无需配置web.xml)
    4. 将该web项目部署到tomcat中并启动

    web访问流程图:

    如上图所示,服务器端程序其实就是实现了servlet接口的程序,servlet的主要作用其实就是处理和响应客户端的请求

    编写第一个servlet

    创建一个web项目可以在创建项目时关联tomcat,这样eclipse会把相关的servlet-api.jar包拷贝到项目中,在项目创建一个Java类实现servlet接口并重写里面的方法。

    记住导入tomcat中的 servlet-api.jar...你懒的话你就创建项目是关联tomcat即可自动导入包(Eclipse)

    在Eclipse中选择2.5版本的动态网页项目 在WEB - INF 下才会自动生成web.xml文件. 这点要注意一下啊!

    完成上面步骤 我们重写了他相关方法之后:

    我们在service方法中写一行打印语句:

    package servlent;
    
    import java.io.IOException;
    
    import javax.servlet.Servlet;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    public class servlent_main implements Servlet {
    
        @Override
        public void destroy() {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public ServletConfig getServletConfig() {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public String getServletInfo() {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public void init(ServletConfig arg0) throws ServletException {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
            // TODO Auto-generated method stub
            System.out.println("你好!我的第一个servlet程序!");
        }
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
        }
    
    }

    然后我们在WEB - INF 下 的 web.xml文件中添加代码(注意注释即可!!!)

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>s1</display-name>        <!-- 这个名字要和项目名一致! -->
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>    
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      
      <!-- 创建一个servlet实例 -->
      <servlet>
      <!-- 这个名字可以随便去取  -->
      <servlet-name>s1</servlet-name>
         <!-- servlet的包名+类名-->
      <servlet-class>s1.s1</servlet-class>
      </servlet>
      
      <!-- 给servlet一个可以访问的URI地址 -->
      <servlet-mapping>
      <!-- servlet的名字,与 servlet中的servlet-name一致-->
      <servlet-name>s1</servlet-name>
      <!-- URI地址:http://locahost:8080/s1/123 -->
      <url-pattern>/123</url-pattern>
      </servlet-mapping>
    </web-app>

    这里面用到了映射 就是说 :

    允许tomcat服务器 => 输入网址 => 找到 <servlet-mapping> 里面的 <servlet-name> s1  映射到  <servlet> 中 然后找到对应的s1 然后允许对应包下的 s1.s1.java文件.

    所以呢:包名千万别输错误!

    具体流程最后的图和解析认真看看即可

    即:

     之后将该web项目部署到tomcat中,启动成功后访问:http://localhost:8080/s1/123
    可以看到eclipse控制台中打印出了Hello Servlet
    通过上面示例可以看出,servlet的需要部署在tomcat中才能运行,有时tomcat也被称为是servlet的容器。

    我们看servlet的源码啊 他的源码包在tomcat的官网下载 具体:  https://archive.apache.org/dist/tomcat/ 下载对应的版本好后

    依次打开java - javax - servlet 就是啊

    但你直接把源码包导入到Eclipse那个源码器中 他会自动解析

    servlet执行流程

    servlet执行流程序列图:

    1. 客户端向tomcat发送请求,http://localhost:8080/07-01-servlet/hello
    2. tomcat根据请求的URL找到名称为07-01-servlet的应用
    3. tomcat根据请求的URI"/hello"找到web.xml文件中url-pattern与之对应的标签
    4. tomcat根据url-pattern标签中的servlet-name定位到com.monkey1024.servlet.FirstServlet类。
    5. tomcat实例化FirstServlet类
    6. 调用FirstServlet类中的init方法
    7. 调用FirstServlet类中的service方法
    8. FirstServlet将数据响应给客户端
    9. 调用distroy方法销毁FirstServlet

    本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/14792861.html

  • 相关阅读:
    测试用户网速办法
    JS 判断后端返回的对象是否为空
    优美地低于生活——读书笔记
    vue login.js登录逻辑
    vuex store index.js配置登录
    vue router的 index.js设置
    css 添加校验时的必填项前面的红色的*
    vue 的 main.js 设置
    vue.config.js配置
    vim的使用
  • 原文地址:https://www.cnblogs.com/bi-hu/p/14792861.html
Copyright © 2020-2023  润新知