JSP
什么是JSP
JSP: Java Server Pages是Java服务器端的页面, 和Servlet一样, 用于动态web技术
最大的特点:
- 写JSP就像在写HTML
- 区别:
- HTML只给用户提供静态数据
- JSP页面中可以嵌入Java代码, 为哟用户提供动态数据
JSP原理
思路: JSP是如何执行的
- 代码层面没有问题
- 服务器内部工作
toncat中有一个work目录;
IDEA中使用Tomcat的会在IDEA中产生一个work目录
浏览器向服务器发送请求, 不管访问什么资源, 其实都是在访问Servlet!
JSP最终也会被转换成一个Java类!
JSP本质上就是一个Servlet
//JSPService
@Override
public void _jspService(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse){
}
//初始化
@Override
public void jspInit() {
}
//销毁
@Override
public void jspDestroy() {
}
- 判断请求
- 内置一些对象
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 //响应
3. 输出页面前增加的代码
response.setContentType("text/html"); //设置响应的页面类型
pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;
4. 以上的这些对象我们可以在JSP页面中直接使用!
![eeddaa881c8e192c517a6eaa29ab04e4.png](https://i-blog.csdnimg.cn/blog_migrate/993bb67f3cec014380edb9380aed0616.jpeg)
在JSP页面中, 只要是Java代码就会原封不动的输出:
只要是HTML代码就会转换成类似:
out.write("<h1>title<h1>rn")
例子:hello.jsp
<%--
Created by IntelliJ IDEA.
User: asus
Date: 2020/6/6
Time: 23:11
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String name = "Bo Peng";
%>
name:<%=name%>
</body>
</html>