java web----jsp语法

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-09 00:43:41

JSP学习

注意:jsp中${user},是在服务器上的,首先去request中找,没有去session中找。。。。。(自己总是错误的认识jsp是一个网页,在浏览器上进行的)

Jsp的page指令学习
  <%@page属性名=“属性值”属性名=“属性值”...%>
属性名:
  1anguage:声明sp要被转译的语言。
  import:声明转译的java文件要导入的包,不同的包使用逗号隔开。
  pageEncoding:设置jsp文件的数据编码格式。
  contentType="text/html;charset=utf-8"设置isp数据响应给浏览器时,浏览器的解析和编码格式。
  session:设置转译的servlet中是否开启session支持,默认开启,true表示开启。false表示关闭。
  errorPage:设置jsp运行错误跳转的页面。(里面传入跳转的jsp路径)
  extends:设置jsp转译的java文件要继承的父类(包名+类名)。
作用:
  配置sp文件的转译相关的参数。

jsp java代码块

使用:<% java代码  %>局部代码块

  缺点:可阅读性极差

局部代码块

  声明的java代码会被原样转译到jsp对应的servlet文件的_JspService方法中

  <body>
  <%
    int a =3;
    if (a>1){ %>  
      <b>"xx"</b><%  
    }
  %>
  </body>

全局代码块

  声明的java代码作为全局代码转译到对应的servlet类中。(注意和局部代码块的转译后的位置是不一样的)

  全局代码块声明的代码,需要使用局部代码块来调用。

<!--全局代码块-->
<%!
  int b=5;
  public void test(){  //局部代码块不能写方法,原因_JspService方法中不能嵌套方法
    system.out.println("我是全局代码块声明");
  }
%>

 

总结

<body>
  <%!public String test = "1";%>       //定义了全局变量,所有的方法都可以使用,全局代码块,主要为了定义方法体的。而所有的定义的方法都可以使用这个变量。
  <%
    String a ="3";                     //定义的变量只能在_JspService方式中使用
    if (a=="3"){ %>
      <b><%out.write(test);%></b>      
      <b><%out.write(a);%></b>         //它在_JspService方法中,是可以调用a的,但是其他的方法不可以调用a
      <b><%=a%></b>                    //简写,使用方法 <%=变量名或者方法%> 
  <%
    }
  %>
  </body>

  

JSP引入

 静态引入

引入的 jsp和当前的jsp转译成一个servlet(java文件)

注意:如果引入的jsp和当前的jsp出现同名变量,在转译的时候就会报错

<%@include file="index.jsp"%>

动态引入

引入的jsp会单独生成一个servlet,当前的jsp转译成的servlet会把请求发送给引入jsp转译后的servlet;

注意:可以变量重名;

<jsp:include page="index.jsp"></jsp:include>

  

jsp请求转发

使用forword标签

<jsp:forward page="index.jsp">
    <jsp:param name="xx" value="xx"/>  //可以传递参数;如果不加参数,里面不能有空格
</jsp:forward> 

传递的参数是以?的形式拼接到转发路劲的后面

通过<% request.getParameter("xx") %>取数据

 

jsp九大内置对象

isp的九大内置对象:
内置对象:
  jsp文件在转译成其对应的Servlet文件的时侯自动生成的并声明的对象。我们在jsp页面中直接使用即可。
注意:
  内置对象在jsp页面中使用,使用局部代码块或者脚本段语句来使用。不能够在全局代码块中使用。

内容:九个对象
  pageContext:页面上下文对象,封存了其他内置对象。封存了当前jsp的运行信息。
    注意:每个jsp文件单独拥有一个pageContext对象。
    作用域:当前页面。
  request:封存当前请求数据的对象。由tomcat服务器创建。一次请求。

  session:此对象用来存储用户的不同请求的共享数据的。一次会话。

  application:也就是ServletContext对象,一个项目只有一个。存储用户共享数据的对象,以及完成其他操作。作用域:项目内

  response:响应对象,用来响应请求处理结果给浏览器的对象。设置响应头,重定向。
  out:响应对象,jsp内部使用。带有缓冲区的响应对象,效率高于response对象。
  page:代表当前]sp的对象。相当于java中的this。|
  exception:异常对象。存储了当前运行的异常信息。
    注意:使用此对象需要在page指定中使用属性isErrorPage="true"开启。
  config:也就是ServletConfig,主要是用来获取web.xml中的配置数据,完成一些初始化数据的读取。

 

四个作用域对象:
  pageContext:当前页面,解决了在当前页面内的数据共享问题。主要作用:获取其他内置对象。
  request:一次请求。一次请求的servlet的数据共享。通过请求转发,将数据流转给下一个servlet。
  session:一次会话.一个用户的不同请求的数据共享。将数据从一次请求流转给其他请求。
  application:项目内.不同用户的数据共享问题。将数据从一个用户流转给其他用户。
  作用:都可以做数据流转。

 

jsp路径问题

如果有这两句(Eclipse工具创建的jsp有下面的代码,IDEA是没有的,如果没有,直接使用绝对路径即可(用 / 开头)。(或者加上下面的代码也可以.))

 

表示下面这个链接的前面会直接加上 localhost:端口/虚拟项目名/

 

JSP学习

注意:jsp中${user},是在服务器上的,首先去request中找,没有去session中找。。。。。(自己总是错误的认识jsp是一个网页,在浏览器上进行的)

1
2
3
4
5
6
7
8
9
10
11
12
Jsp的page指令学习
  <%@page属性名=“属性值”属性名=“属性值”...%>
属性名:
  1anguage:声明sp要被转译的语言。
  import:声明转译的java文件要导入的包,不同的包使用逗号隔开。
  pageEncoding:设置jsp文件的数据编码格式。
  contentType="text/html;charset=utf-8"设置isp数据响应给浏览器时,浏览器的解析和编码格式。
  session:设置转译的servlet中是否开启session支持,默认开启,true表示开启。false表示关闭。
  errorPage:设置jsp运行错误跳转的页面。(里面传入跳转的jsp路径)
  extends:设置jsp转译的java文件要继承的父类(包名+类名)。
作用:
  配置sp文件的转译相关的参数。

jsp java代码块

使用:<% java代码  %>局部代码块

  缺点:可阅读性极差

局部代码块

  声明的java代码会被原样转译到jsp对应的servlet文件的_JspService方法中

1
2
3
4
5
6
7
8
<body>
<%
  int a =3;
  if (a>1){ %> 
    <b>"xx"</b><% 
  }
%>
</body>

全局代码块

  声明的java代码作为全局代码转译到对应的servlet类中。(注意和局部代码块的转译后的位置是不一样的)

  全局代码块声明的代码,需要使用局部代码块来调用。

1
2
3
4
5
6
7
<!--全局代码块-->
<%!
  int b=5
  public void test(){  //局部代码块不能写方法,原因_JspService方法中不能嵌套方法
    system.out.println("我是全局代码块声明");
  }
%>

 

总结

1
2
3
4
5
6
7
8
9
10
11
12
<body>
  <%!public String test = "1";%>       //定义了全局变量,所有的方法都可以使用,全局代码块,主要为了定义方法体的。而所有的定义的方法都可以使用这个变量。
  <%
    String a ="3";                     //定义的变量只能在_JspService方式中使用
    if (a=="3"){ %>
      <b><%out.write(test);%></b>     
      <b><%out.write(a);%></b>         //它在_JspService方法中,是可以调用a的,但是其他的方法不可以调用a
      <b><%=a%></b>                    //简写,使用方法 <%=变量名或者方法%>
  <%
    }
  %>
  </body>

  

JSP引入

 静态引入

引入的 jsp和当前的jsp转译成一个servlet(java文件)

注意:如果引入的jsp和当前的jsp出现同名变量,在转译的时候就会报错

1
<%@include file="index.jsp"%>

动态引入

引入的jsp会单独生成一个servlet,当前的jsp转译成的servlet会把请求发送给引入jsp转译后的servlet;

注意:可以变量重名;

1
<jsp:include page="index.jsp"></jsp:include>

  

jsp请求转发

使用forword标签

1
2
3
<jsp:forward page="index.jsp">
    <jsp:param name="xx" value="xx"/>  //可以传递参数;如果不加参数,里面不能有空格
</jsp:forward>

传递的参数是以?的形式拼接到转发路劲的后面

通过<% request.getParameter("xx") %>取数据

 

jsp九大内置对象

isp的九大内置对象:
内置对象:
  jsp文件在转译成其对应的Servlet文件的时侯自动生成的并声明的对象。我们在jsp页面中直接使用即可。
注意:
  内置对象在jsp页面中使用,使用局部代码块或者脚本段语句来使用。不能够在全局代码块中使用。

内容:九个对象
  pageContext:页面上下文对象,封存了其他内置对象。封存了当前jsp的运行信息。
    注意:每个jsp文件单独拥有一个pageContext对象。
    作用域:当前页面。
  request:封存当前请求数据的对象。由tomcat服务器创建。一次请求。

  session:此对象用来存储用户的不同请求的共享数据的。一次会话。

  application:也就是ServletContext对象,一个项目只有一个。存储用户共享数据的对象,以及完成其他操作。作用域:项目内

  response:响应对象,用来响应请求处理结果给浏览器的对象。设置响应头,重定向。
  out:响应对象,jsp内部使用。带有缓冲区的响应对象,效率高于response对象。
  page:代表当前]sp的对象。相当于java中的this。|
  exception:异常对象。存储了当前运行的异常信息。
    注意:使用此对象需要在page指定中使用属性isErrorPage="true"开启。
  config:也就是ServletConfig,主要是用来获取web.xml中的配置数据,完成一些初始化数据的读取。

 

四个作用域对象:
  pageContext:当前页面,解决了在当前页面内的数据共享问题。主要作用:获取其他内置对象。
  request:一次请求。一次请求的servlet的数据共享。通过请求转发,将数据流转给下一个servlet。
  session:一次会话.一个用户的不同请求的数据共享。将数据从一次请求流转给其他请求。
  application:项目内.不同用户的数据共享问题。将数据从一个用户流转给其他用户。
  作用:都可以做数据流转。

 

jsp路径问题

如果有这两句(Eclipse工具创建的jsp有下面的代码,IDEA是没有的,如果没有,直接使用绝对路径即可(用 / 开头)。(或者加上下面的代码也可以.))

 

表示下面这个链接的前面会直接加上 localhost:端口/虚拟项目名/

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!