jsp像写html
区别可以嵌套java代码为用户提供动态数据
jsp原理
最终会转换为一个class类
本质是一个servlet
在jsp里面
java代码会原封不动的输出
<%jsp的这里面写java代码%>
html代码会被转换为
out.write("\r\n")
C:\Users\ASUS.IntelliJIdea2019.3\system\tomcat\Unnamed_javaweb-session-cookie\work\Catalina\localhost\javaweb_session_cookie_war\org\apache\jsp
jsp系统后台自动转换后代码
jsp基本语法
maven导入的依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<!-- Servlet依赖-->
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency>
<!-- jsp依赖-->
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
<dependency>
<!-- jstl表达式的依赖-->
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<!-- standard标签库-->
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
java的语法都支持
<%--JSP表达式
作用:用来将程序的输出,输出到客户端
<%=变量或者表达式%>
--%>
<%=new java.util.Date()%>
jsp脚本片段
<%
int sum=0;
for (int i = 1; i <=100 ; i++) {
sum+=i;
}
out.println("<h1>Sum="+sum+"</h1>");
%>
jsp声明
<%!
static{
sout("xxx")
}
private int gl=0
public void wefun(){
sout("xxx")
}
%>
<%%>片段
<%=%>表达式输出
<%!%>全局方法
<%----%>jsp注释
<!----!>html注释
jsp指令
<%@ page errorPage="" %>页面错误跳转
也可以在web.xml文件下
<error-page>
<error-code>404</error-code>
<location></location>
</error-page>
<%@include file=""%>等价于<jsp:include page=""></jsp:include>
区别第一个两个页面合二为一
第二个拼接页面本质还是三个
九大内置对象
- PageContext
- Request
- Respone
- Session
- Application(ServletContext)存东西
- config(ServletConfig)
- Page
- exception
作用域
pageContext.setAttribute();页面内有效
Request请求时有效
客户端发送请求,产生的数据,用户看完没用
Session会话时有效
看完一回还要看
Application(ServletContext)服务器打开时有效
一个用户用完 另一个用户还要用,聊天数据
pageContext.forward();请求转发
JSP标签、JSTL标签、EL表达式
EL表达式:${}
- 获取数据
- 执行运算
- 获取web开发对象
-EL表达式获取表单中的数据
${param.参数}
jsp标签
在这里插入代码片
JSTL标签
核心标签
- 引入核心标签库
- 使用其中的方法
- 在Tomcat也需要引入jar包
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>