JSP详细介绍

一、什么是JSP

Java Server Page:Java服务器端页面,也和Servlet一样,用于动态Web技术

最大的特点:

  • 写JSP就像在写HTML
  • 区别:
    • HTML只给用户提供静态的数据
    • JSP页面中可以嵌入JAVA代码,为用户提供动态数据

二、JSP原理

思路:JSP到底怎么执行!

  • 浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet!
  • JSP最终也会被转换成也一个Java类
  • JSP本质上就是一个Servlet

内置一些对象:

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

JSP访问流程:

在这里插入图片描述

在JSP页面中,只要是JAVA代码就会原封不动的输出;

如果是HTML代码,就会被转换为:

out.write("<html>\r\n");

以这样的格式输出到前端

三、JSP基础语法

jsp表达式

<%--写变量或者表达式--%>
<%= new java.util.Date()%>

jsp脚本片段

<%--写java语句--%>
<%
	int sum = 0;
	for(int i = 1; i<=100; i++){
        sum+=i;
    }
	out.println("<h1>Sum="+sum+"</h1>");
%>

jsp声明

<%--写java方法的地方--%>
<%!
    static {
    	System.out.println("Loading Serclet!");
	}
	private int globalVar = 0;
	public void wang(){
    	System.out.println("进入了方法");
	}
%>

**他们三个的区别:**会被编译到jsp生成java的类中!其他的,会被生成到 _jspServlet方法中

其他区语法:

<%--定制错误页面	这个500.jsp使我们自定义的一个错误页面--%>
<%@page errorPage="500.jsp" %>

<%--新建jsp默认生成的一段代码--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%--显示声明这是一个错误页面--%>
<%@page isErrorPage="true" %>

<%--镶嵌页面--%>
<jsp:include page="common/yemei.jsp"/>

四、9大内置对象

  • PageContext 存东西
  • Request 存东西
  • Ression
  • Session 存东西
  • Application ---->【ServletContext】 存东西
  • config ---->【ServletConfig】
  • out
  • page
  • exception
<body>
<%-- 四种存储对象 --%>
<%
    pageContext.setAttribute("name1","张三"); //保存的数据只在一个一面中有效
    request.setAttribute("name2","李四"); //保存的数据只在一次请求中有效,请求转发会携带这个数据
    session.setAttribute("name3","王五"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
    application.setAttribute("name4","小明"); //保存的数据只在服务器中有效,从打开服务器到关闭服务器
%>

<%
    //通过pageContext取出我们保存的值,我们通过寻找的方式来
    String name1 = (String) pageContext.findAttribute("name1");
    String name2 = (String) pageContext.findAttribute("name2");
    String name3 = (String) pageContext.findAttribute("name3");
    String name4 = (String) pageContext.findAttribute("name4");
%>
<%--使用EL来表达式 ${} --%>
<h1>取出的值为:</h1>
<h3>${name1}</h3>
<h3>${name2}</h3>
<h3>${name3}</h3>
<h3>${name4}</h3>
</body>

request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻

session:客户端向服务器发送请求,产生的数据,用户看完一会还有用,比如:购物车

application:客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用

五、JSP标签、JSTL表达式、EL表达式

EL表达式:

  • 获取数据
  • 执行运算
  • 获取web开发常用对象
<%--获取表单中的数据--%>
${param.参数名}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯凯凯凯.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值