一、指令标识
1.1、page指令
<%@ page language="java" import="java.util.*" errorPage="error.jsp" buffer="64kb" a utoFlush="true" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
1.2、include指令
不过该指令是静态包含,也就是说被包含文件中所有内
容会被原样包含到该 jsp 页面中,即使被包含文件中有 jsp 代码,在包含时也不会被编译执行。使用 include 指令,最终将生成一个文件,所以在被包含和包含的文件中,不能有相同名称的变量。
在应用jsp:include标识进行文件包含时,为了使整个页面的层次结构不发生冲突,建议在包含页面中将、等标记删除。
1.3、taglib指令
导入标签库有很多。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!-- 导入需要的标库:标签库里面有需要的标签 -->
二、脚本标识
2.1、代码片段
<%
String manager="mr";
//假设从servlet中获取的数据
String title="./images/houtaimain/timg.gif"; //
%>
2.2、JSP表达式
<%=title %>
<%=5+6 %>
<img alt="这是图片" src="<%=title%>">
2.3、声明标识
代码片段与声明标识的区别是,通过声明标识创建的变量和方法,在当前 jsp 页面中有效,它的生命周期是从创建开始到服务器关闭结束;而代码片段创建的变量或方法,也是在当前 jsp 页面中有效,但它的生命周期是页面关闭后,就是被销毁。
注意:每刷新一次,都count是加1,number是加2
<%!
int number=0;
int count(){
number++;
return number++;
}
%>
count:<%=count() %> ==========
number:<%=number %>
三、注释
3.1、HTML注释
注意:源代码可以看见,一般不用这种
3.2、带有JSP表达式的注释
// // / */
3.3、隐藏注释
注意:项目中提倡写这种注释,只能开发人员看,通过浏览器看源码看不见
<%–每刷新一次,都会加1 --%>
3.4、动态注释
<!-- <%=new Date() %>-->
四、动作标识
4.1、包含文件标识
在应用jsp:include标识进行文件包含时,为了使整个页面的层次结构不发生冲突,建议在包含页面中将、等标记删除。
A.<%@ include file=”” %>只能包含静态页面
B.<jsp:include page=”url” flush=”false|true”>
可以包含动态页面,静态页面
4.2、请求转发标识
<jsp:forward page="index.jsp">
<jsp:param value="123456" name="account"/>
</jsp:forward>
4.3、传递参数标识
<jsp:forward page="index.jsp">
<jsp:param value="123456" name="account"/>
</jsp:forward>
<jsp:include page="top4.jsp">
<jsp:param value="123456" name="account"/>
</jsp:include>
五、Request对象
5.1、获取访问的请求参数
注意:超链接?Username=jim; 表单文本框,密码框等
request.getParameter();
5.2、在作用域管理属性
request.setAttribute(“result”,“很抱歉,页面产生错误!”);
request.getAttribute(“result”);
5.3、解决中文乱码
-
第一种
request.setCharacterEncoding(“utf-8”); -
第二种
//字符串变成字节数组,并且转码
byte[] bytes=username.getBytes(“ISO8859-1”);
//字节数组变成字符串,并且转码
String username2=new String(bytes,“utf-8”);
5.4、显示国际化信息
//获取本地国际化信息
Locale locale=request.getLocale();
Locale le=Locale.US;//美国
5.5、获取客户端信息
获取客户端向服务器传送数据的方法:<%=request.getMethod() %><br>
使用的协议:<%=request.getProtocol() %><br>
获得发出请求字符串的客户端地址,不包括请求的参数:<%=request.getRequestURI() %> <br>
获得发出请求字符串的客户端地址:<%=request.getRequestURL()%> <br>
获取客户端的 IP:<%=request.getRemoteAddr() %> <br>
获取服务器的名字:<%=request.getServerName() %> <br>
获取服务器的端口号:<%=request.getServerPort() %> <br>
获取客户端的主机名:<%=request.getRemoteHost() %><br>
获取客户端请求的脚本文件的文件路径:<%=request.getServletPath() %><br>
获得 HTTP 协议定义的文件头信息host的值:<%=request.getHeader("host") %><br>
获得 HTTP 协议定义的文件头信息user-agent的值:
<%=request.getHeader("user-agent") %><br>
获取请求文件的绝对路径:<%=request.getRealPath("Test4Request.jsp") %><br>
path:<%=path %><br>
basePath:<%=basePath %>
六、response内置对象
6.1、重定向网页
response.sendRedirect(“login.jsp”); //重定向到 login.jsp 页面
response.sendRedirect(“https://www.baidu.com”); //重定向到百度
6.2、处理http文件头
<%
//response.setHeader("pragma", "no-cache");
//response.setHeader("Cache-control","no-store");
//response.setDateHeader("Expires",0);
response.setHeader("refresh","10;URL=index.jsp");
%>
6.3、设置输出缓存
response.setBuffer(32);
七、Session内置对象
session.setAttribute("name",name);
String name=(String)session.getAttribute("name");
session.removeAttribute("name");
//设置最大的存活时间,10秒
//session.setMaxInactiveInterval(10);
//销毁session
session.invalidate();
八、application内置对象
<context-param>
<param-name>URL</param-name>
<param-value>jdbc:mysql://127.0.0.1:3306/db_databases</param-value>
//获取配置文件context-para里面参数的值
String value=application.getInitParameter("URL");
//首先获取所有的参数名,我们是不是可以根据参数名获取参数值
/*
把所有的初始化参数名放入枚举中
*/
Enumeration<String> enumeration=application.getInitParameterNames();
application.setAttribute("image","1.png");
String image=(String)application.getAttribute("image");
out.println("<br/>image="+image);
application.removeAttribute("image");
九、Out对象
Out对象的方法
//append:只能添加字符
//write: 只能添加字符,字符串,字符数组
//println:可以打印任何类型
println不会换行,因为在html里面只会把它当成一个内容,而不是标签,所以换行需要加入
十、pageContext
获取会话范围的 pageContext 对象
Servlet里面获取pageContext:
JspFactory _jspxFactory =JspFactory.getDefaultFactory();
PageContext pageContext =_jspxFactory.getPageContext(this,request,response,"",true,8192,true);
十一、config对象
获取servlet里面的初始化参数。
十二、page对象
表示当前页面的servlet对象。和this一样。
十三、Exception对象
A.需要处理异常的页面:要加上errorPage=“error.jsp”,指明有异常后去哪个jsp处理。
B.error.jsp页面需要加上isErrorPage=”true”
C.error.jsp页面用exception对象获取异常信息。
D.获取异常信息的三种方法
1.getMessage: 获取异常信息
2.toString:(以前的意思:返回对象的字符串表现形式),获取异常类名和异常信息
3.printStackTrace:没有返回值,打印输出异常类名、异常信息和异常行号。