Jsp
jsp 的主要作用是代替 Servlet 程序回传 html 页面的数据。
Servlet 回传 html 页面数据的代码:
**public class** PringHtml **extends** HttpServlet {
@Override
**protected void** doGet(HttpServletRequest req, HttpServletResponse resp) **throws** ServletException,
IOException {
*//* *通过响应的回传流回传* *html* *页面数据*
resp.setContentType(**"text/html; charset=UTF-8"**);
PrintWriter writer = resp.getWriter();
writer.write(**"<!DOCTYPE html>****\r\n****"**);
writer.write(**" <html lang=****\"****en****\"****>****\r\n****"**);
writer.write(**" <head>****\r\n****"**);
writer.write(**"**
<meta charset=\"UTF-8\">\r\n");
writer.write(**"**
**<title>Title</title>****\r\n****"**);
writer.write(**" </head>****\r\n****"**);
writer.write(**" <body>****\r\n****"**);
writer.write(**"**
**这是** **html** **页面数据** **\r\n****"**);
writer.write(**" </body>****\r\n****"**);
writer.write(**"</html>****\r\n****"**);
writer.write(**"****\r\n****"**);
}
}
jsp 的三种语法
a)jsp 头部的 page 指令
jsp 的 page 指令可以修改 jsp 页面中一些重要的属性,或者行为。
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
i. language 属性 表示 jsp 翻译后是什么语言文件。暂时只支持 java。
ii. contentType 属性 表示 jsp 返回的数据类型是什么。也是源码中 response.setContentType()参数值
iii. pageEncoding 属性 表示当前 jsp 页面文件本身的字符集。
iv. import 属性 跟 java 源代码中一样。用于导包,导类。
=两个属性是给 out 输出流使用==
v. autoFlush 属性 设置当 out 输出流缓冲区满了之后,是否自动刷新冲区。默认值是 true。
vi. buffer 属性 设置 out 缓冲区的大小。默认是 8kb
=两个属性是给 out 输出流使用==
vii. errorPage 属性 设置当 jsp 页面运行时出错,自动跳转去的错误页面路径。
<!–
errorPage 表示错误后自动跳转去的路径
这个路径一般都是以斜杠打头,它表示请求地址为 http://ip:port/工程路径/映射到代码的 Web 目录
–>
viii. isErrorPage 属性 设置当前 jsp 页面是否是错误信息页面。默认是 false。如果是 true 可以获取异常信息。
ix. session 属性 设置访问当前 jsp 页面,是否会创建 HttpSession 对象。默认是 true。
x. extends 属性 设置 jsp 翻译出来的 java 类默认继承谁。
b)jsp 中的常用脚本
i. 声明脚本**(极少使用)**
声明脚本的格式是: <%! 声明 java 代码 %>
作用:可以给 jsp 翻译出来的 java 类定义属性和方法甚至是静态代码块。内部类等。
练习:
1、声明类属性
2、声明 static 静态代码块
3、声明类方法
4、声明内部类
代码:
<%–1*、声明类属性**–%>*
<%!
private Integer id;
private String name;
private static Map<String,Object> map;
%>
<%–2*、声明* static 静态代码块*–%>*
<%!
static {
map = new HashMap<String,Object>();
map.put(“key1”, “value1”);
map.put(“key2”, “value2”);
map.put(“key3”, “value3”);
}
%>
<%–3*、声明类方法**–%>*
<%!
public int abc(){
return 12;
}
%><%–4*、声明内部类**–%>*
<%!
public static class A {
private Integer id = 12;
private String abc = “abc”;
}
%>
|