• 10. java的servlet+JSP总结


    java web项目创建

    在这里插入图片描述

    项目目录结构

    在这里插入图片描述

    创建Servlet类对象

    servlet对象的创建和使用分两步

    • 第一:定义servlet
    • 第二:配置文件里web-inf/web.xml里声明servlet的处理路径或者使用注解处理

    定义servlet

    // 导入必需的 java 库
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    // 扩展 HttpServlet 类
    public class HelloWorld extends HttpServlet {
     
      private String message;
    
      public void init() throws ServletException
      {
          // 执行必需的初始化
          message = "Hello World";
      }
    
      public void doGet(HttpServletRequest request,
                        HttpServletResponse response)
                throws ServletException, IOException
      {
          // 设置响应内容类型
          response.setContentType("text/html");
    
          // 实际的逻辑是在这里
          PrintWriter out = response.getWriter();
          out.println("

    " + message + "

    "
    ); } public void destroy() { // 什么也不做 } }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    配置servlet

    <web-app>      
        <servlet>
            <servlet-name>HelloWorldservlet-name>
            <servlet-class>HelloWorldservlet-class>
        servlet>
    
        <servlet-mapping>
            <servlet-name>HelloWorldservlet-name>
            <url-pattern>/HelloWorldurl-pattern>
        servlet-mapping>
    web-app>  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    通过注解配置

    Servlet 3.0 中增加了注解支持,例如:@WebServlet、@WebInitParm 、@WebFilter 和 @WebLitener 等,这使得 web.xml 从 Servlet 3.0 开始不再是必选项了。下面我们对 @WebServlet 进行介绍。
    servlet注解说明

    servlet的重要说明

    servlet的生命周期

    在这里插入图片描述

    注意:除了service方法servlet里还有doget,dopost方法,

    • 一个servlet被访问时,它默认处理请求的是service方法,这个方法是在servlet接口中定义的。对于service方法,一般来说这个方法是不需要重写的,因为在HttpServlet中已经有了很好的实现,它会根据请求的方式,调用doGet,doPost以及其他的doXXXt方法,也就是说service是用来转向的,所以我们一般写一个servlet,只需要重写doGet或者doPost就可以了。
    • 如果重写了service方法,那么servlet容器就会把请求交给这个方法来处理,倘若你重写的service方法没有调用doXXX,即使你在Servlet中又重写了其他doGet doPost等也是不会被调用的,因为Servlet的service被自动调用(就像init destory一样),所以如果你由于某种需要,需要重写service方法,并且更具不同的method调用doPost doGet等时,就要在末尾加上一句super.service(),这样就可以解决问题了。

    servlet的重要对象

    • HttpServletRequest对象
    • HttpServletResponse对象
    • Cookie对象
    • HttpSession对象
    • ServletContext对象,所有应用共享一个servletContext对象,是公共数据存储信息

    session和cookie

    • session是服务端记录访问者的id,并行把访问者id返回给客户端,下次客户端请求的时候会携带id,然后从session中取值
    • cookie服务端不保存,直接由服务端发送给客户端保存,下次请求可以携带配合业务来完成相关验证或者数据获取
      cookie保存了数据并且在客户端,而session保存的数据在服务端,客户端只有一个id

    servlet页面跳转和重定向

    • 页面转发:url不会发生变化,通过页面转发可以把请求数据做中间处理,然后转给其他的页面处理这些数据。
    • 页面重定向:url发生变化,不会把当前servlet的数据转发。

    JSP

    JSP是对servlet的改编,本质还是servlet,只是编写方式发送了改变,servlet通过代码里写html封装返回,而JSP通过在html里写java代码来简化了html代码在java里书写的麻烦

    JSP教程

    JSP教程

    JSP九大内置对象

    对象 描述
    request HttpServletRequest 接口的实例
    response HttpServletResponse 接口的实例
    out JspWriter类的实例,用于把结果输出至网页上
    session HttpSession类的实例
    application ServletContext类的实例,与应用上下文有关
    config ServletConfig类的实例
    pageContext PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
    page 类似于Java类中的this关键字
    Exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象

    在这里插入图片描述

    jsp+servlet配合

    servlet只提供接口服务,jsp编写页面,

    • 使用页面跳转或者重定向技术和公共数据保存对象来完成数据的传递。
      • 本质上还是servlet之间的转发
      • 实现的jsp负责承担页面渲染工作
      • 访问的时候是访问controller而不是jsp。
        在这里插入图片描述
  • 相关阅读:
    CF1700D River Locks
    RuntimeError: DataLoader worker (pid(s) 46220) exited unexpectedly
    【HTML】HTML5网页作业----模仿京东,模仿站点
    【React源码】(二)React 工作循环 (workLoop)
    中国石油大学(北京)-《 油层物理》第三阶段在线作业
    使用vscode搭建虚拟机
    多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测(SE注意力机制)
    QT 自学内容 day02 菜单栏,工具栏,铆接窗口,中心部件,资源文件的添加
    体育馆为何要安装弧光保护装置?其作用何在?
    MySQL 中with rollup的用法,对分组再汇总
  • 原文地址:https://blog.csdn.net/qq_37771209/article/details/126768216