JSP入门

JSP简介

Java Service Page :Java服务器页面。其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行

JSP能处理一些Java前后端交互的数据,主要用来显示数据,但不建议大量代码写在JSP页面里面;

优点:简单,和HTML差不多

缺点:书写页面会很乱,HTML代码和JAVA交错;

JSP执行原理

动态请求会被分发到Web容器(Web服务器)中。
容器会去执行字节码文件,就是 .class文件。
Servlet是java类,可以直接编译成class文件。
但是,Jsp怎么编译成class文件?
于是我们会想,jsp是不是会被转换成一个java类。
追究本质
Tomcat在工作的时候,将我们的Jsp页面转换成了java类
在这里插入图片描述
打开这个类分析:
该类继承一个类:HTTPJSPBase , 没有直接继承HttpServlet , 但是HTTPJSPBase继承了HttpServlet,所以得出结论
***JSP本身就是一个servlet的方式运行的***那他怎么输出页面的呢?发现他是使用out对象输出到浏览器

在这里插入图片描述
那这个out对象上去的方式是什么呢?
发现,有一个_jspService可以执行操作我们的JSP,将它输出到前端页面
在这里插入图片描述
在这里插入图片描述
JSP语法

JSP基础语法

JSP获得变量的值 <%= 表达式或者变量值 %>
JSP定义局部变量:写一段Java代码 <% Java代码 %>
注意点:必须严格遵守Java规范
JSP定义全局变量 <%! 全局变量或方法 %>
除此之外,JSP中还分为EL表达式和JSTL标签这两种表达方法,本篇博客先介绍EL表达式。

EL表达式:${}
EL表达式一般用来输出变量的值,而不是一个对象。
<%@ page import=“java.util.Date” %>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

<%–
JSP基础语法
1.JSP获得变量的值 <%= 表达式或者变量值 %>
2.JSP定义局部变量:写一段Java代码 <% Java代码 %>
注意点:必须严格遵守Java规范
3.JSP定义全局变量 <%! 全局变量或方法 %>

简化符:因为HTML是标记语言,我们需要一些标记
EL表达式和JSTL标签

${}  ==  <%= %> 联系和区别
EL表达式一般用来输出变量的值;而不能是一个对象;

tomcat会在jsp解析的时候将_jspService转换成对应的doget。dopost,我们正常方式无法直接调用!

//JSP内置对象:
pageContext 作用域:
application = pageContext.getServletContext(); 应用
session = pageContext.getSession(); 会话
request = 请求
page = this; 页面

  ===
  out.输出

–%>

<%!
int i = 0;

public int add(int a,int b){
return a+b;
}

%>

<%
//Java代码
String name = “abc”;
int age = 18;
int j = 0;
Date date = new Date();

out.write(
        (java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate
                ("${name}", java.lang.String.class,
                        (javax.servlet.jsp.PageContext)_jspx_page_context,
                        name
                )
);

%>

$Title$

日期:<%=new Date()%>
名字:<%=name%>
年龄:<%=age%>
i:<%=i++%>
j:<%=j++%>

JSP特殊用法
jsp代码可以在不同的 <%%>中实现,但是,Java代码必须保持完成,否则页面会报500错误(服务器代码错误);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值