• JSP基础


    目录

    一.JSP的生命周期

    二:JSP指令标签

    三:JSP动作元素        

    四:JSP九大内置对象 

    五:JSP读取表单数据

    六:文件上传


    一.JSP的生命周期

    • 编译阶段:servlet容器编译serlvet源文件,生成servlet类
    • 初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用初始化方法(init() )
    • 执行阶段:调用与JSP对应的servlet实例的服务方法(service() )
    • 销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例(destory)

    二:JSP指令标签

    <%@ page ...%>            定义网页依赖属性,比如脚本语言、error页面、缓存需求等等

    <%@ include...%>          包含其他文件

    <%@ taglib...%>             引入标签定义

    三:JSP动作元素 

            

    <jsp:useBean id="name" class="package.class" />

     

    sp:setProperty用来设置已经实例化的Bean对象的属性,有两种用法。首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,如下所示:

    1. <jsp:useBean id="myName" ... />
    2. ...
    3. <jsp:setProperty name="myName" property="someProperty" .../>

    此时,不管jsp:useBean是找到了一个现有的Bean,还是新创建了一个Bean实例,jsp:setProperty都会执行。第二种用法是把jsp:setProperty放入jsp:useBean元素的内部,如下所示:

    1. <jsp:useBean id="myName" ... >
    2. ...
    3. <jsp:setProperty name="myName" property="someProperty" .../>
    4. jsp:useBean>

    此时,jsp:setProperty只有在新建Bean实例时才会执行,如果是使用现有实例则不执行jsp:setProperty。

    1. <jsp:userBean id='myName'.../>
    2. <jsp:getProperty name='myName',property='someProperty'.../>

      

    把请求转到另一个页面

    以下实例我们使用了两个文件,分别是: date.jsp 和 main.jsp。

    date.jsp 文件代码如下:

    1. <%@ page language="java" contentType="text/html; charset=UTF-8"
    2. pageEncoding="UTF-8"%>
    3. <p>
    4. 今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
    5. p>

    main.jsp文件代码:

    1. <%@ page language="java" contentType="text/html; charset=UTF-8"
    2. pageEncoding="UTF-8"%>
    3. html>
    4. <html>
    5. <head>
    6. <meta charset="utf-8">
    7. <title>菜鸟教程(runoob.com)title>
    8. head>
    9. <body>
    10. <h2>forward 动作实例h2>
    11. <jsp:forword page="date.jsp">
    12. body>
    13. html>

    现在将以上两个文件放在服务器的根目录下,访问main.jsp文件。显示结果如下:

    今天的日期是: 2016-6-25 14:37:25

    动态定义XML元素

    1. <%@ page language="java" contentType="text/html; charset=UTF-8"
    2. pageEncoding="UTF-8"%>
    3. html>
    4. <html>
    5. <head>
    6. <meta charset="utf-8">
    7. <title>菜鸟教程(runoob.com)title>
    8. head>
    9. <body>
    10. <jsp:element name="xmlElement">
    11. <jsp:attribute name="xmlElementAttr">
    12. 属性值
    13. jsp:attribute>
    14. <jsp:body>
    15. XML 元素的主体
    16. jsp:body>
    17. jsp:element>
    18. body>
    19. html>

    四:JSP九大内置对象 

    request:

    每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。

    request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。

    response: 

    当服务器创建request对象时会同时创建用于响应这个客户端的response对象。

    response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等。

    out:

     out对象是 javax.servlet.jsp.JspWriter 类的实例,用来在response对象中写入内容。

    session:

    用来跟踪在各个客户端请求之间的会话

    application:

    这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除。

    config:

    这个对象允许开发者访问Servlet或者JSP引擎的初始化参数,比如文件路径等。

    pageContext:

    用来代表整个JSP页面。

    这个对象主要用来访问页面信息,同时过滤掉大部分实现细节。

    这个对象存储了request对象和response对象的引用。application对象,config对象,session对象,out对象可以通过访问这个对象的属性来导出。

    pageContext对象也包含了传给JSP页面的指令信息,包括缓存信息,ErrorPage URL,页面scope等。

    page 对象

    这个对象就是页面实例的引用。它可以被看做是整个JSP页面的代表。

    page 对象就是this对象的同义词。

    exception 对象

    exception 对象包装了从先前页面中抛出的异常信息。它通常被用来产生对出错条件的适当响应。

     五:JSP读取表单数据

    • getParameter(): 使用 request.getParameter() 方法来获取表单参数的值。

    • getParameterValues(): 获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量 ,如checkbox类型

    • getParameterNames():该方法可以取得所有变量的名称,该方法返回一个 Enumeration。

    • getInputStream():调用此方法来读取来自客户端的二进制数据流。

     

    六:文件上传

    • 表单 method 属性应该设置为 POST 方法,不能使用 GET 方法。
    • 表单 enctype 属性应该设置为 multipart/form-data.
    • 表单 action 属性应该设置为在后端服务器上处理文件上传的 Servlet 文件。下面的实例使用了 UploadServlet Servlet 来上传文件。
    • 上传单个文件,您应该使用单个带有属性 type="file" 的 标签。为了允许多个文件上传,请包含多个 name 属性值不同的 input 标签。输入标签具有不同的名称属性的值。浏览器会为每个 input 标签关联一个浏览按钮。
    1. <%@ page language="java" contentType="text/html; charset=UTF-8"
    2. pageEncoding="UTF-8"%>
    3. html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    4. "http://www.w3.org/TR/html4/loose.dtd">
    5. <html>
    6. <head>
    7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    8. <title>文件上传实例 - 菜鸟教程title>
    9. head>
    10. <body>
    11. <h1>文件上传实例 - 菜鸟教程h1>
    12. <form method="post" action="/TomcatTest/UploadServlet" enctype="multipart/form-data">
    13. 选择一个文件:
    14. <input type="file" name="uploadFile" />
    15. <br/><br/>
    16. <input type="submit" value="上传" />
    17. form>
    18. body>
    19. html>

  • 相关阅读:
    企业如何构建内部开发者平台?
    代理模式(Proxy模式)
    大数据性能测试方案-V1.0
    使用VNC过程中遇到的问题总结
    SpringMVC源码(1)-文件上传请求
    Leetcode(435)——无重叠区间
    RK3588 开发者选项中通过“USB DEBUG“按钮实现otg模式切换(二)
    神策数据指标拆解工具正式上线
    linux(三) -- 系统管理
    基础课4——客服中心管理者面临的挑战
  • 原文地址:https://blog.csdn.net/weixin_47188125/article/details/127846837