JSP
一、什么是JSP
JSP:Java Server Page(在服务端使用java生成网页的技术)
JSP帮助开发人员将运行结果与html标签快速写入到响应包中
jsp:属于动态的资源文件
二、JSP与HTML的区别
1.文件类型
html属于静态资源文件
jsp属于动态资源文件
<html>
<%
String value = request.getParameter("name");
%>
hello<%=value%>
</html>
2.调用方式
html:被访问时,Tomcat直接将html写入到响应体中
jsp:被访问时,
- Tomcat将jsp文件【翻译】为一个java文件(Servlet)
- Tomcat将当前的java文件【编译】为一个class文件
- Tomcat调用class文件,class文件_jspService方法开始工作了
- 将在JSP文件中书写【所有与java命令无关的内容写入响应包】
- Tomcat负责将响应表推送给用户的浏览器
三、JSP语法和指令
1.执行标签
<% %> 相当于 { }
可以声明java变量
可以声明java中运算表达式:算术,关系,逻辑
控制语句:if……else for while
在执行标签书写的所有内容,都会被Tomcat存入对应的_jspService方法中
<%@page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<%
int a=10;
int b=20;
int c=a+b;
%>
a+b=<%=c%> <%--out.println(c)--%>
<br>
50*40=<%=50*40%> <%--out.println(50*40)--%>
</html>
2.page指令
page指令负责jsp的配置工作
<%@page 属性名="属性值" 属性名="属性值"……%>
/*
属性介绍
language:jsp要被转义的语言
import:声明转义后的java文件要导入的包
pageEncoding:设置jsp文件的数据编码格式
contentType:resp的转义到的servlet响应格式
session:设置转义的servlet中是否 开启session支持,默认开启
errorPage:设置jsp运行错误之后跳转的页面
extends:java要继承的父类
*/
3.java局部代码块
<%
//这是java代码块
System.out.printin("这里是java代码块");
%>
特点: 局部代码块声明的代码块中声明的java代码会被原样转义到jsp对应的servlet文件的_JspService方法中, 代码块中声明的变量是局部变量
4.java全局代码块
<%!
//这是全局方法块
public void test(){
System.out.printin("我声明了一个方法");
}
%>
特点: 声明的全局代码作为类的属性和方法被转义到对应的servlet中
5.java变量和jsp数据流转
<%String str = "这里是要被jsp输出的变量"%>
<%--使用尖括号加百分号加等号的方式--%>
<P> <%=str%> </p>
注意:不要在使用之后添加分号
6.java静态引入
<%@inlucde file="includeStatic.jsp" %>
<%-- file路径为相对路径 --%>
特点:在jsp转义的时候, 会把被静态引入的jsp文件, 和自身文件转义成一个servlet文件
注意:java代码块很可能会发生重名变量和重名方法
7.动态引入
<jsp:include page="要引入的jsp文件的相对路径"></jsp:include>
特点:会将引入的jsp文件单独转义,在当前文件转义好的java文件中调用引入的jsp文件的转义文件, 在网页中显示合并后的显示效果
注意:动态引入允许文件中声明同名变量
8.转发
<jsp:forward page="要转发的jsp文件的相对路径">
<jsp:param value=“aaa” name=“str” />
</jsp:forward>
一次请求,地址栏信息信息不变. 和servlet请求转发相同
注意: 两个标签中间, 除了数据流转用的子标签之外, 其他任何标签都会报错
四、内置对象
1.概述:
直接在jsp页面中,不需要获取和创建,直接可以使用的对象
2.分类:
1.request 2.response 3.session
4.out 5.page 6.application
7.pageContext 8.config 9.exception
内置对象名 | 真实数据类型 | 作用 |
---|---|---|
1.request | HttpServletRequest | 一次请求中共享数据 |
2.response | HttpServletResponse | 响应对象 |
3.session | HttpSession | 一次会话中共享数据 |
4.out | JSPWriter | 输出对象,输出数据到当前页面 |
5.page | Object | 当前页面的对象 |
6.application | ServletContext | 所有用户间的共享数据 |
7.pageContext | PageContext | 当前页面共享数据,通过该对象可以获取其他8个内置对象 |
8.config | ServletConfig | servlet配置对象 |
9.exception | Throwable | 只有异常页面有该对象 |
|
五、web程序常见的错误
404:
找不到访问的页面或者资源
- 运行时,URL输入错误
- 将页面放在WEB-INF下
- 外部启动Tomcat,未部署项目
500:
jsp页面代码有错误
页面无法显示:
Tomcat可能没打开