JSP

jsp

1、什么是jsp

Java Servlet Pages:java服务器端页面,和Servlet一样,用于动态Web技术。

最大的特点:

写jsp就好像在写HTML

区别:

HTML只给用户提供静态的数据

JSP中可以嵌入java代码,给用户提供了动态的数据

2、JSP原理

思路:jsp到底是怎么执行的

浏览器向服务器发送请求,不管访问什么资源,都是在访问Servlet

jsp最终也会被转化为java类

JSP本质上就是一个Servlet

//初始化
public void _jspInit(){
    
}
//销毁
public void _jspDestory(){
    
}
//JSPService
public void _jspService(.HttpServletRequest request,HttpServletResponse response)

1、判断一些请求

2、内置一些对象

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;//响应

在jsp页面中:

只要是java代码就会被原封不动的输出:

如果是HTML代码,会被转换为这样的格式输出到前端

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

3、JSP的基础语法

任何语言都有自己的语法,java中有,jsp作为java技术的一种应用,它拥有一些自己扩充的语法(了解,知道即可)。java的所有语法都支持。

<%--jsp表达式
    作用:用来将程序输出到客户端
    <%= 变量或者表达式%>
    --%>
<%= new java.util.Date()%>
jsp的脚本片段
<%--jsp脚本片段--%>
<%
	int sum = 0;
	for(int i = 1;i<=100;i++){
        sum+=i;
    }
	out.println("<h1>Sum="+sum+"</h1>");
%>
jsp还可以这样玩
<%
	int x =10;
	out.println(x);
%>
<p>这是一个jsp文档</p>
<%
	int y = 20;
	out.println(y);
%>
<hr>
<%--在代码中嵌入HTML元素--%>
<%
	for(int i = 0;i<5;i++){
%>
	<h1>Hello Word <%=i%></h1>
<%
	}
%>
jsp声明
<%!
	static{
    	System.out.println("loading Servlet");
	}
	private int golbaLVar = 0;
	public void kaung(){
        System.out.println("进入了方法kuang");
    }
%>

jsp声明:会被编译到jso生成的java类中。其他的会被生成到_jspService方法中

在jsp中嵌入java代码即可

<%%>
<%=%>
<%!%>
<%--注释--%>

jsp的注释不会在客户端显示,html就会

4、jsp指令

<%@page args....%>
<%@include file =""%>
<%--include会将两个页面合二为一--%>
<%@include file="common/header.jsp"%>
<h1>网页主体</h1>
<%@include file="common/footer.jsp"%>
<hr>
<%--jsp标签
    jsp:include:拼接页面,本质还是三个
    --%>
<jsp:include page="/common/header.jsp"/>
    <h1>网页主体</h1>
<jsp:include page="/common/header.jsp"/>  

5、九大内置对象

PageContext 存东西

Request 存东西

Response

Session 存东西

Application【ServletContext】 存东西

config

out

page,不用了解

exception

pageContext.setAttribute("name1","pj1");//保存的数据只在一个页面中有效
request.setAttribute("name2","pj2");//保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("name3","pj3");//保存的数据只在一次会话中有效,打开浏览器到关闭浏览器
application.setAttribute("name4","pj4");//保存的数据只在服务器中有效,从打开服务器到关闭服务器

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

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

application:客户端向服务器发送数据,产生的数据一个用户用完其他的用户还能再用。比如:聊天数据

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

EL表达式:获取数据、执行运算、获取web开发的常用对象

JSP标签

<jsp:forward page="/pagetag2.jsp">
    <jsp:param name="name" vlaue="pangjie"></jsp:param>
    <jsp:param name="age" value="22"></jsp:param>
</jsp:forward>   


<%--取出--%>
姓名:<%=request.getParameter("name")%>
年龄:<%=request.getParameter("age")%>

JSTL表达式

JSTL标签库就是为了弥补HTML标签的不足;他自定义许多标签,可以供我们使用,标签的功能和Java代码一样。

格式化标签

SQL标签

XML标签

核心标签(部分掌握)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ob4igPmf-1608036742337)(C:\Users\dell\Desktop\捕获.PNG)]

测试代码

<%--
跳转到coreif.isp页面参数为:username=param.username
完整路径为http://localhost:8080/jsp/coreif.jsp?username=admin
--%>
<form action="coreif.jsp" method="get">
    <%--
    EL表达式获取表单中的数据
    ${param.参数名}
    --%>
    <input type="text" name="username" value="${param.username}">
    <input type="submit" value="登录">
</form>

<%--判断如果提交的用户名是管理员,则登录成功--%>
<c:if test="${param.username=='admin'}" var="isAdmin">
    <c:out value="管理员欢迎您!"/>
</c:if>

<%--自闭合标签--%>
<c:out value="${isAdmin}"/>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值