JAVAWeb --JSP基础语法

准备工作,导入一些依赖

<dependencies>
        <!--Servlet  的依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
        <!--jsp的依赖-->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
        <!--jstl 表达式的依赖-->
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- taglibs 标签库 -->
        <dependency>
            <groupId>org.apache.taglibs</groupId>
            <artifactId>taglibs-standard-impl</artifactId>
            <version>1.2.5</version>
            <scope>runtime</scope>
        </dependency>

    </dependencies>

任何一种独立的语言都有自己的语法,jsp作为java的一种应用技术,它拥有一些自己的扩充语法,Java所有语言搜支持

  <%= new java.util.Date()%>                //常量或变量表达式
  <% int i=1;  %>                           //java代码(嵌套Java脚本)
  <%!
    static {                               //JSP声明(也可以叫方法)
      System.out.println("loading");
    }
  %>

 JSP自定义页面:

当我们在网页发生错乱的时候:例如 服务器异常 500 ,找不到资源  404

我们就可以在web.xml中自定义这些页面的走向,然后在指定页面中提出一些解决方法,就可以避免进入tomcat中自带的错误页面

<error-page>
  <error-code>500</error-code>                //自定义500错误页面
  <location>/error/500.jsp</location>
</error-page>
  <error-page>
    <error-code>404</error-code>             //自定义404错误页面
    <location>/error/404.jsp</location>
  </error-page>

 

<!-- @include  会将两个页面合并在一起的:就只有一个页面了 -->
<%@ include file="common/Header.jsp"%>
<h1>公共页面测试</h1>
<%@ include file="common/Footer.jsp"%>



<%--jsp标签:拼接页面,本质还是三个页面;内置的一些变量常量互不干扰;一般使用这个--%>
<jsp:include page="common/Header.jsp"/>
<h1>网页主体</h1>
<jsp:include page="common/Footer.jsp"/>

  上面的代码实现的是网站的公共页面的测试:以及两种实现方法和区别。

JSP:九大内置对象

  • PageContext        存东西
  • Request               存东西
  • Response
  • Session
  • Application    【servletContext】存东西
  • Config             【servletConfig】
  • out
  • page
  • exception
<body>
<%
    pageContext.setAttribute("name1","马明1");
    request.setAttribute("name2","马明2");
    session.setAttribute("name3","马明3");
    application.setAttribute("name4","马明4");
%>
<%--脚本中的代码会被原封不动的转换到JSP_java
要求:这里的代码必须要保证Java的正确性
--%>
<%
    //pagecontext中取出,我们通过寻找的方式来
    String  name1 =(String) pageContext.findAttribute("name1");
    String  name2 =(String) pageContext.findAttribute("name2");
    String  name3 =(String) pageContext.findAttribute("name3");
    String  name4 =(String) pageContext.findAttribute("name4");
    String  name5 =(String) pageContext.findAttribute("name5");//不存在
%>
<%--使用EL  表达式寻找--%>
<h1>取出的值为:</h1>
<h2>${name1}</h2>
<h2>${name2}</h2>
<h2>${name3}</h2>
<h2>${name4}</h2>
<h2>${name5}</h2><%--这个对象不存在:所以EL 表达式不输出--%>
<h2><%=name5%></h2><%--这个对象存在:但是这种表达式会输出:null--%>
</body>

这四个存入数据对象的作用域为:

pageContext:保存数据只在一个页面中有效,作用域最低,看完,退出页面就需要重新加载

resquest:保存的数据只在一次请求中有效,请求转发的时候会携带这个数据,一旦请求消失,数据也会消失

session:保存的数据只会在一次会话中有效,用户使用一次后依旧可以用(单个用户),从打开浏览器到彻底关闭浏览器

application:保存的数据在服务器范围内都有效,一个用户用完了,其它用户也可以使用,从打开服务器到关闭服务器

注:pagecontext从网页获取数据的方式:采用由低到高------page--->request--->session-->application

页面转发:

pageContext.forward("路径名")----------------前端实现

request.getRequestDispatcher("路径名").forward(request,response);--------------后端实现(servlet实现)

 

posted @ 2022-11-01 14:45  回忆也交给时间  阅读(16)  评论(0编辑  收藏  举报