- jsp职责是展示数据
- sevlet职责收集数据
开始
- 创建一个.jspe文件,文件没有内容,部署到服务器上,展现的是一个空白。
- 实际上底层执行的是index_jsp.class,
- . jsp会生成.java文件并编译
- jsp实际上是一个servlet,index_jsp.java继承字HttpJspBase,而HttpJspBase继承了HttpServlet
- jsp生命周期与servlet一致
- 第一次访问效率低,需要先生成文件
基础语法
jsp不默认为UTF-8
例子
<%@page contentType="text/html; charset=UTF-8" %>
<%
System.out.println("曹飞羽");
String name = "casda";
out.write(name);
%>
<%!
private int a;
%>
jsp普通文字翻译
jsp编写的文字会自动翻译到servlrt类的service的out.write(“在这里”)。被翻译成字符串,打印在网页
jsp的page指令
< % @page % >
解决响应的乱码问题
<%@page contentType="text/html;charset=UTF-8" %>
charset不能有空格。
例子
<%@page contentType="text/html;charset=UTF-8" %>
<html >
<head>
<script type="text/javascript">
function hello(){
alert("你好")
} </script>
<title>Title</title>
</head>
<body>
<input type="button" value="hello.jsp" οnclick="hello()">
</body>
</html>
jsp写java程序
service方法内
<% java语句 %>
在这个符号中写会被视为java程序,编译到service方法内部(会翻译到体内,注意)
service方法外
<%! %>
jsp输出语句
<% String name = "asf";
out.write(name);
%>
- out是jsp九大内置对象之一,可以直接使用,只能在service方法中使用
- 不建议使用会有线程安全问题
- 如果输出的内容只是字符串,直接写外面
如果内容含有java代码
<%= %>
- 在 = 后面写需要输出的内容 最终被翻译为out.print(),不要 ;
注释
<%-- --%>
JSP指令
- 作用:指导翻译引擎工作
包含
- include指令
- taglib指令
- page指令
用法
<%@指令名 属性名=属性值 属性名=属性值 属性名=属性值 ...... %>
page常用属性
session 启用session内置对象
<%@page session="true|false"%>
- true表示启用session内置对象
- false表示没有session对象创建
contentType 设置响应的内容类型
<%@page contentType="text/html; charset=UTF-8" %>
- 设置响应的内容类型 text/html
- 设置响应的字符集 eg:charset=UTF-8 在后面直接加上
pageEncoding 设置响应的字符集
<%@page pageEncoding="utf-8" %>
- 设置响应的字符集
import 导包
<%@page import="com" %>
- 导包
errorPage 出错误后跳转
<%@page errorPage="index.jsp" %>
- 该界面出错误后跳转到该index.jsp界面
- 指定出错误的跳转路径
isErrorPage exception内置对象启用
<%@page isErrorPage="true|false" %>
- true exception启用
- false exception不启用
- exception
<%
//打印异常堆栈信息
exception.printStackTrace();
%>
isELIgnored 忽略EL表达式
- true 忽略
- false 不忽略 (默认)
九大内置对象
pageConttext 页面作用域
requext 请求作用域
session 会话作用域
application 应用作用域
exception
- 通过page指令中 isErrorPage进行启用
<%
//打印异常堆栈信息
exception.printStackTrace();
%>
config
page (其实是this ,当前servlet的对象)
out 负责输出
response 负责响应
其它
- pageConttext 页面作用域 < requext 请求作用域 < session 会话作用域 < application 应用作用域
- 以上四个作用域都有 setAttribute , gettAttribute , removeAttribute方法
- 以上作用域使用,尽可能的使用小的。
Filter过滤器
Listener监听器
其它
- 动态获取html的bace标签路径
<base href="${pageContext.request.scheme}://${pageContext.request.serverPort}${pageContext.request.contextPath}/">
- ${pageContext.request.scheme} 代表http
- ${pageContext.request.serverPort} 代表服务器ip
- ${pageContext.request.contextPath} 代表路径