Javaweb,JSP

JSP

什么是JSP

Java Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术!
最大的特点:写JSP就像在写HTML
区别:
HTML只给用户提供静态的数据
JSP页面中可以嵌入JAVA代码,为用户提供动态数据;

JSP原理

在写好一个jsp运行之后,在idea中使用Tomcat会在idea的tomcat中生产一个work目录
在这里插入图片描述
里面的jsp文件全部被转换成了java文件
在这里插入图片描述
这里我们可以看到他通过java语言来输出我们所写的html语句
在这里插入图片描述
jsp的本质就是一个servlet
在jsp中内置了这些对象

final javax.servlet.jsp.PageContext pageContext; //页面上下文
javax.servlet.http.HttpSession session = null; //session
final javax.servlet.ServletContext application; //applicationContext
final javax.servlet.ServletConfig config; //config
javax.servlet.jsp.JspWriter out = null; //out
final java.lang.Object page = this; //page:当前
HttpServletRequest request //请求
HttpServletResponse response //响应

比如,在之前我们在servlet中写session需要先获取session
但是如果在jsp中写session可以直接写要使用的方法
在这里插入图片描述
我们在访问一个jsp时,jsp页面会在服务器中转化为java文件,生成一个xx_jsp.java文件,然后编译成一个xx_jsp.class文件,再返回到服务器,我们得到的就是服务器处理完成的class对象

JSP的基础语法

任何语言都有自己的语法,JAVA中有 ,JSP 作为java技术的一种应用,它拥有一些自己扩充的语法,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>");
%>

输出结果
在这里插入图片描述
脚本片段再实现
小脚本之间可以隔着html代码因为编译之后html语句也是用java代码打印出来的

<%
int x = 10;
%>
<p>这是一个JSP文档</p>
<%
out.println(x);
%>

输出结果
在这里插入图片描述
在代码中嵌入html代码

<%
for (int i = 0; i < 5; i++) {
%>
<h1>Hello,World <%=i%> </h1>
<%
}
%>

在这里插入图片描述

在这里插入图片描述
JSP声明

<%!
public void wx(){
  System.out.println("wx");
}
%>

JSP声明:会被编译到JSP生成Java的类中!其他的,就会被生成到_jspService方法中!
在这里插入图片描述
在这里插入图片描述

JSP指令

<%@ page ....%>//	定义网页依赖属性,比如脚本语言、error页面、缓存需求等等

例如当页面发生500错误跳转到错误页面
在这里插入图片描述
在这里插入图片描述
我们也可以在web.xml中定义错误跳转页面
在这里插入图片描述

<%@include%>//	包含其他文件

包含页面,会将两个页面合二为一
在header.jsp写了我是头部
在这里插入图片描述<jsp:include page="/common/header.jsp"></jsp:include>
看起来一样,但实际上使用这个是页面拼接,而上面那个是包含,合二为一
在这里插入图片描述

9大内置对象及作用域

PageContext 存东西
Request 存东西
Response
Session 存东西
Application 【SerlvetContext】 存东西
config 【SerlvetConfig】
out
page ,不用了解
exception

pageContext.setAttribute("name1","wx1"); //保存的数据只在一个页面中有效
request.setAttribute("name2","wx2"); //保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("name3","wx3"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("name4","wx4"); //保存的数据只在服务器中有效,从打开服务器到关闭服务器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值