java之JSP

it2026-02-01  3

什么是JSP:

Java server pages :Java 服务端页面,也和servlet一样,用于动态web技术。 最大特点: 写JSP跟HTML相像。 区别: HTML只给用户提供静态的数据 JSP页面可以写入Java代码,为用户提供动态数据;

JSP原理

思路:JSP怎么执行! 代码层面无问题 服务器内部工作 Tomcat中有一个work目录 idea中使用Tomcat的会在idea的Tomcat中产生一个work目录 我电脑相应文件所在地址:C:\Users\LLh.IntelliJIdea2018.2\system\tomcat\Unnamed_javaweb02servlet\work\Catalina\localhost\ROOT\org\apache\jsp 发现页面转变成Java程序

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

在JSP页面中,只要是Java代码,就会原封不动额输出,如果是前端代码,就会转换为:

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

这样的格式输出到前端!

jsp基础语法

JSP作为Java技术的一种应用,它拥有一些自己扩充的语法(了解,知道即可),Java所有语法都支持!

JSP声明:会被编译到JSP生成Java类中,其他的,就会被生成到_jspService方法中! 在jsp嵌入Java代码即可

注:Java注释,不会在客户端显示,HTML会

JSP指令

#配置报错页面代码如下:

//在JSP中添加这个标签 <%@page errorPage="404.jsp" %> <%@ page errorPage="500.jsp" %> //web.xml <error-page> <error-code>500</error-code> <location>/500.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/error/404.jsp</location> </error-page>

实现模板复用,效果与Django模板继承差不多。

//代码示例 //header.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <h1>我是header</h1> //jsp3.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%--el标签 模板复用--%> <%@include file="common/header.jsp"%> <h1>网页主体</h1> <%@include file="common/footer.jsp"%> <%--jsp标签 模板复用--%> <jsp:include page="common/header.jsp"></jsp:include> <h1>网页主体</h1> <jsp:include page="common/footer.jsp"></jsp:include> </body> </html> //footer.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <h1>我是footer</h1>

九大内置对象

1. pageContext 存东西 常用 2. request 存东西 常用 3. response 4. session 存东西 常用 5. application [servletcontext] 存东西 常用 6. config [servletconfig] 7. out *8. page * 9. excepetion

**request:**客户端向服务器发送数据请求,产生的数据,用户看完就没用了,比如:新闻,用户看完没用的 **session:**客户端向服务器发送请求,产生数据,用户用完一会还有用,比如:购物车,用户登录验证 **application:**客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用,比如:聊天数据等。

代码附上:

<%-- pageContextDemo01.jsp --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%--内置对象--%> <% pageContext.setAttribute("name1","耶耶1号");//保存的数据只在一个页面中有效 request.setAttribute("name2","耶耶2号");//保存的数据只在一次请求中有效,请求转发会携带这个数据 session.setAttribute("name3","耶耶3号");//保存数据只在一次会话中有效,从打开浏览器到关闭浏览器 application.setAttribute("name4","耶耶4号");//保存数据只在服务器中有效,从打开服务器到关闭服务器 %> <% //从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"); String name5 = (String) pageContext.findAttribute("name5");//不存在 %> <%--使用el表达式输出--%> <h1>取出的值为:</h1> <h2>${name1}</h2> <h2>${name2}</h2> <h2>${name3}</h2> <h2>${name4}</h2> <h2>${name5}</h2> </body> </html> <%-- pageDemo02.jsp --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Titl阿斯顿发生e</title> </head> <body> <% //从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"); String name5 = (String) pageContext.findAttribute("name5");//不存在 %> <%--使用el表达式输出--%> <h1>取出的值为:</h1> <h2>${name1}</h2> <h2>${name2}</h2> <h2>${name3}</h2> <h2>${name4}</h2> <h2>${name5}</h2> </body> </html>

jsp标签、jstl标签、el表达式

el表达式: ${}

** 获取数据** ** 执行运算** ** 获取web开发的常用对象**

jstl表达式

jstl标签库的使用就是为了补足HTML标签的不足,它自定义许多标签,可以供我们使用,标签的功能和Java代码一样! 使用步骤: 引入对应的taglib 使用其中的方法 在Tomcat也需要引入jstl的包,否则会报错:jstl解析错误。

核心标签 常用

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

格式化标签

XML标签

SQL标签

最新回复(0)