javaweb--JSP原理剖析
1. JSP1.1 什么是JSPJava Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术!1.2 JSP最大的特点写JSP就像在写HTML区别:HTML只给用户提供静态的数据JSP页面中可以嵌入JAVA代码,为用户提供动态数据;1.3 JSP原理思路:JSP到底怎么执行的!服务器内部工作tomcat中有一个work目录;IDEA中使用Tomcat的会
1. JSP
1.1 什么是JSP
Java Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术!
1.2 JSP最大的特点
- 写JSP就像在写HTML
区别: - HTML只给用户提供静态的数据
- JSP页面中可以嵌入JAVA代码,为用户提供动态数据;
1.3 JSP原理
思路:JSP到底怎么执行的!
- 服务器内部工作
- tomcat中有一个work目录;
- IDEA中使用Tomcat的会在IDEA的tomcat中生产一个work目录,这个目录是动态生成的,访问服务器就会生成。
我电脑的地址
C:\Users\Administrator\.IntelliJIdea2017.2
\system\tomcat\Unnamed_javawev-sesseion-cookie\work
\Catalina\localhost\ROOT\org\apache\jsp
发现页面转变成了Java程序!
浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet!
JSP最终也会被转换成为一个Java类!
JSP 本质上就是一个Servlet(继承了HttpServlet这个类)
//初始化
public void _jspInit() {
}
//销毁
public void _jspDestroy() {
}
//JSPService
public void _jspService(HttpServletRequest request,HttpServletResponse response)
1.3.1 示例:测试work目录是动态生成的
1. 新建一个hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>hello jsp!</h1>
</body>
</html>
-
启动服务器
-
当在启动服务器的过程中,原先的work目录会被删掉,等服务器启动完毕后,会创建一个新的work目录。
-
访问hello.jsp
-
查看现在服务器新生成的work目录
hello_jsp.java 代码截图(工作原理)javax.servlet.jsp.JspWriter out;对象往网页里面写入html代码。
1.3.2 示例:jsp里面写java代码,<% java代码 %>
- 修改hello.jsp里面的代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String name = "周天天";
%>
<h1>hello <%=name%>!</h1>
</body>
</html>
-
启动服务器
-
访问hello.jsp
-
查看现在服务器新生成的work目录
hello_jsp.java 代码截图(工作原理)javax.servlet.jsp.JspWriter out;对象往网页里面写入html代码。
我们发现:在JSP页面中;只要是 JAVA代码就会原封不动的输出;如果是html的格式就会转会为类似:out.write(“\r\n”);这样的格式输出到前端,所以说前端是被渲染出来的,而不是跟我们在学html直接写出来。
1.4 JSP 做的事情
- 判断请求
- 内置了一些对象
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; //响应
- 输出页面前增加的代码
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;
更多推荐
所有评论(0)