标签:out username 说明 private 编辑 支持 nal false 处理
JSP中支持两种注释,一种是显式注释,客户端是允许看见的,另外一种是隐式注释,客户端是无法看见的;
显示注释的内容会发送到客户端;隐式注释的内容不会发到客户端;
content.jsp :
<!-- 这个注释客户端就可以看见 --> <!-- JSP中的注释,客户端可以看见 --> <% // Java中提供的单行注释,客户端无法看见 /* Java中提供的多行注释,客户端无法看见 */ %> <%-- 也看不见 --%>
<% int x = 10; // 定义局部变量 String info = "www.baidu.com"; // 定义局部变量 out.println("<h2>x = " + x + "</h2>"); // 编写语句 out.println("<h2>info = " + info + "</h2>"); // 编写语句 %>
scriptlet_demo02.jsp :
<%! public static final String INFO = "www.MLDNJAVA.cn" ; //定义全局变量 int x = 10 ; %> <% out.println("<h2>x = " + x++ + "</h2>") ; // 语句 %> <%! public int add(int x,int y){ //定义方法 return x + y ; } %> <%! class Person{ //定义类 private String name ; private int age ; public Person(String name,int age){ this.name = name ; this.age = age ; } public String toString(){ return "name = " + this.name + ";age = " + this.age ; } } %> <% out.println("<h3>INFO = " + INFO + "</h3>") ; out.println("<h3>3 + 5 = " + add(3,5) + "</h3>") ; out.println("<h3>" + new Person("zhangsan",30) + "</h3>") ; %>
scriptlet_demo03.jsp :
<% String info = "www.baidu.com" ; // 局部变量 int temp = 30 ; %> <h3>info = <%=info%></h3> <h3>temp = <%=temp%></h3> <h3>name = <%="luwucheng"%></h3>
尽量不要使用out.put.println()输出,而使用表达式输出;
如果过多的出现<%%>会导致代码的混乱,此scriptlet标签完成与<%%>同样的功能;
scriptlet_tag.jsp
<jsp:scriptlet> String url="www.baidu.com"; </jsp:scriptlet> <h2><%=url%></h2>
指定一个jsp页面的相关属性,包括MIME类型,定义需要导入的包,错误页的指定;
只有import指定可以重复出现多次,其它属性只能出现一次;
常用指令:contentType、pageEncoding、errorPage/isErrorPage、import
语法 :
<%@page 属性="内容"%>
MIME:可以设置打开文件的应用程序类型;指定某个扩展名文件将使用何种应用程序打开的一个说明;
page_demo01.jsp
<%@ page language="java" contentType="text/html;charset=GBK"%> <CENTER> <H2> 百度一下</H2> <H3> 网址:www.baidu.com </H3> </CENTER>
以上,指定了开发语言是java,通过contentType进行设置,按照HTML文本文件进行显示,页面编码是GBK;
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
contentType和pageEncoding设置编码的区别:
pageEncoding指的是jsp文件本身的编码;
contentType中的charset指的是服务器发送给客户端的内容编码;
如果一个jsp页面只需要按照网页显示,则使用pageEncoding设置编码即可;
完成错误页的操作,需要满足两个条件:
指定错误出现时的跳转页,通过errorPage属性指定;
错误处理页必须有明确的标识,通过isErrorPage属性指定;
会出现错误的页面 show.jsp
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%> <%@ page errorPage="error.jsp"%><%-- 一旦出现错误之后将跳转到error.jsp中 --%> <% int result = 10 / 0 ; // 这里操作将发生异常 %> <h1>欢迎光临本页面</h1>
错误处理页 error.jsp
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%> <%@ page isErrorPage="true"%> <%-- 表示此页面可以处理错误 --%> <h1>程序出现了错误!</h1>
错误页的跳转属于服务器端的跳转;
服务器端跳转:页面内容出现了改变,而地址栏并有改变;
客户端跳转:程序跳转后,地址栏发生了变化;
有时可能出现无法跳转的错误页,无法显示error.jsp页面信息,则可能tomcat也认为该页有错误;
解决方式:在error.jsp页面中加入如下语句
<%response.setStatus(200);%>
采用包含的形式,减少代码的重复量;
jsp中可以通过静态包含和动态包含两种方式完成;
在jsp编译时插入一个包含文本或代码的文件,过程是静态的;
包含的文件可以是jsp文件,html文件,文本文件或一段java程序(只是简单的将内容合在一起进行显示);
语法:<%@ include file="要包含的文件路径"%>
include_demo01.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%> <html> <head><title></title></head> <body> <h1>静态包含操作</h1> <%@include file="info.htm"%> <%@include file="info.jsp"%> <%@include file="info.inc"%> </body> </html>
静态包含中,现将三个文件的内容导入到include_demo.jsp中,然后一起编辑,最后呈现一份整体的内容给用户,属于先包含,后编译处理;
使用<jsp:include>指令完成动态包含操作;
可自动区分被包含的页面是动态还是静态;
如果是静态,则将内容包容进来进行处理;如果是动态,则先进行动态处理,再将处理后的结果包含进来;
语法:
* 不传递参数
<jsp:include page="{要包含的文件 | <%=表达式%>}" flush="true | false" />
* 包含参数
<jsp:include page="{要包含的文件 | <%=表达式%>}" flush="true | false" >
<jsp:param name="参数名称" value="参数内容" />
....可以向被包含的页面传递多个参数
</jsp:include>
标签指令必须完结;
当flush = false,表示将整个网页全被被读进来以后才输出;
每个jsp的内部都有一个buffer,如果是true,当buffer满了就输出。默认值为true;
采用包含参数语法可向被包含页面传递参数,被包含的页面可使用 request.getParameter()方法进行参数的接收;
被包含页面:receive_param.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%> <h1>参数一:<%=request.getParameter("name")%></h1> <h1>参数二:<%=request.getParameter("info")%></h1>
包含页,并传递参数: include_demo02.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <% String username = "BUGSHI" ; // 定义一个变量 %> <h1>动态包含并传递参数</h1> <jsp:include page="receive_param.jsp"> <jsp:param name="name" value="<%=username%>"/> <jsp:param name="info" value="www.baidu.com"/> </jsp:include> <!-- 此处为标签指令,必须完结 --> </body> </html>
<%@include %> 和<jsp:include />操作相似,采用动态包含更好;
使用<jsp:forward>指令,将一个用户的请求(request)从一个页面传递到另一个页面的操作;
语法:
* 不传递参数
<jsp:forward page="{要包含的文件名称 | <%=表达式%>}" />
* 传递参数
<jsp:forward page="{要包含的文件名称 | <%=表达式%>}" />
<jsp:param name="参数名称" value="参数内容" />
....可以向被包含页面传递多个参数
</jsp:forward>
跳转指令与动态包含指令的语法相似,只是完成的功能不同;
此种跳转也属于服务器端跳转;
标签:out username 说明 private 编辑 支持 nal false 处理
原文地址:http://www.cnblogs.com/shici/p/7647546.html