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:端口/虚拟项目名/