Servlet

一、Servlet简介
  1.Servlet就是sun公司开发动态web的一门技术
  2.Sun在这些API中提供一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个小步骤:
    ①编写一个类,实现Servlet接口
    ②把开发好的java类部署到web服务器中
  3.把实现了Servlet接口的Java程序叫做,Servlet

  4.Servlet接口sun公司有两个默认的实现类:HttpServlet,GenericServlet
二、HelloServlet

  1.构建一个普通maven项目,此项目作为父项目

  

 

   

 

   

 

   2.把需要的依赖导入项目的pom.xml文件里,maven仓库地址:https://mvnrepository.com/

  

 

   3.创建一个Servlet项目,此项目作为子项目

  

 

   

 

   子项目创建完成后,父项目pom.xml下会多一个modules

  

 

   子项目pom.xml会生成parent

  

 

   父项目中的jar包,子项目可以直接使用

  4.Maven环境优化

    ①修改web.xml为最新的

    ②将maven项目的结构搭建完整

  

 

   5.编写一个Servler程序

    ①编写一个普通类

    ②实现Servlet接口,这里继承HttpServlet

   

 

   6.编写servlet的映射

    为什么需要映射:我们写的是Java程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要在web服务中注册我们写的servlet,还需要给他一个浏览器能够访问的路径;

          

  7.配置tomcat,注意项目发布的路径

  8.启动测试,成功打印

 三、Servlet运行原理

  Servlet是由web服务器调用,web服务器在收到浏览器请求之后,会:

  

 

 

 四、关于mapping映射

  1.一个Servlet可以指定一个映射路径

  

  2.一个servlet可以指定多个映射路径

  

  3.一个servlet可以指定通用映射路径,也可以通配符* 解决通用请求路径.

  

 

 

   4.默认请求路径 /*

  

  5.使用自定义路径 (*.XXX);注意在这里*.前面不能再加路径

  

  6.还有就是有时会出现404资源访问不到的问题,这个页面也是可以使用servlet进行响应的,配置对应的映射即可.

  7.优先级问题,指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求;

五、ServletContext对象

  1.web容器启动时,会为每个web程序创建一个对应的servletContext对象,代表当前的web应用;

  2.ServletContext可共享数据,在其中一个servlet中设置保存的数据,在另一个servlet中可获取.

  3.编写一个servlet类,在servletContext中存储数据;

  

  4.编写另一个servlet获取上一个servlet中保存的数据;

  

  5.web.xml配置servlet以及映射路径;

  

  6.启动服务器,先访问获取servlet数据的那个路径;由于并没有数据,故返回的是null值;

  

  7.再访问/hello;即保存了数据的servlet;

  

  8.然后再访问获取servlet的路径;获取到数据了

  

六、ServletContext应用

  1.可以在web.xml中设置参数键值对

  

  2.在一个servlet类中获取ServletContext对象,通过对象获取web.xml中设置的指定参数值

  

  3.在web.xml中配置ServletDemo03映射路径,启动服务器后,访问该路径,控制台输出指定参数值。

  

七、请求转发

  1.一次请求:例如A向B取东西,但是东西在C那,然后B就去找C拿,B拿完后再给A。

    ①使用request请求对象的方法,getRequestDispatcher设置请求转发的路径;

    ②然后调用forward方法实现请求转发

  

  2.两次请求,重定向:例如A向B取东西,但是B没有,B告诉你去找C那,然后A再去找C拿东西,整个过程有两次请求。

八、Properties读取资源文件

  1.在Java和resources目录下各自新建properties文件

  2.两个文件都被打包到了同一路径下:classes路径,我们称这个路径为classpath

  获取properties文件代码练习

  

 九、HttpServletResponse

  web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应一个HttpServletResponse;

  ①.如果要获取客户端请求过来的参数:找HttpServletRequest

  ②.如果要给客户端响应一些信息:找HttpServletResponse

  1.关于响应的一些简单分类:

    ①负责向浏览器发送数据的方法

    ServletOutputStream getOutputStream() throws IOException;

    PrintWriter getWriter() throws IOException;

    ②负责向浏览器发送响应头的方法

    

 

     ③响应的状态码

    

 

   2.下载文件步骤与思路

    ①要获取下载文件的路径

    ②下载的文件名是啥?

    ③设置想办法让浏览器能够支持下载我们需要的东西

    ④获取下载文件的输入流

    ⑤创建缓冲区

    ⑥获取OutputStream对象

    ⑦将FileOutputStream流写入到buffer缓冲区

    ⑧使用OutputStream将缓冲区中的数据输出到客户端   

    

 

 

  

posted @ 2022-05-06 17:11  独角兽夹心饼干  阅读(84)  评论(0)    收藏  举报