如何开发一个动态web资源(如何去编写一个servlet)

如何开发一个动态web资源

1.class文件不应该被浏览器直接访问到

  1. 即便直接访问到,那么也是下载该class文件,而不是执行
    在这里插入图片描述
  2. 如果下载了class文件,那么服务器的源代码就暴露在了客户端面前

服务器为了保护源代码的安全,设置了一个目录专门用来存放源代码文件,即WEB-INF目录。任何文件只要在WEB-INF目录下,那么浏览器绝对无法直接访问到它

  1. 曲线救国,运行servlet(映射机制)

服务器给你提供了一个映射机制,比如 /servlet1对应你编写的servlet,那么今后只要你输入/servlet1那么就知道了应该去调用当前编写的servlet。
在这里插入图片描述
还有一个说明:

就是源代码文件,按照EE规范,必须要放置在WEB-INF/classes目录下,如果有运行时依赖的jar包,那么该jar包需要放置在WEB-INF/lib目录下(如果没有,那么就不写该目录),以及一个配置潜规则的文件,该文件名也必须要求时web.xml。

目录结构;
在这里插入图片描述
最终访问的时候,一定要看是在哪个应用下面的

比如我们设置的应用叫做/application,servlet的映射叫做/servlet1,那么访问的时候

http://locservlet究竟是怎么执行的呢?

反射。可以利用反射在程序运行的时候动态的生成一个对象。

Class.forName(com.cskaoyan.servlet.FirstServlet).newinstance();

/servlet1----------------------FirstServlet

扫描二维码关注公众号,回复: 12727245 查看本文章

FirstServlet servlet = Class.forName(FirstServlet).newInstance();

**servlet.service(request,response)**alhost/application/servlet1.

Student.java

public class Student {
    
    
    public void say(){
    
    
        System.out.println("hello");
    }
}

Reflection.java

public class Reflection {
    
    
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
    
    
        Student o = (Student)Class.forName("com.cskaoyan.servlet.Student").newInstance();
o.say();

    }
}

输出结果;
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gy99csdn/article/details/114177986
今日推荐