什么是Jsp
Java Server Page : Java服务器端页面,和Servlet一样,用于 动态Web
技术
最大的特点
- 语法和HTML类似
区别
- HTML只给用户提供静态的数据
- JSP页面可以嵌入Java代码,为用户提供动态数据
Jsp原理
Jsp是怎么执行的?
代码层面 :
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
服务器内部 :
tomcat中有一个work目录;
idea使用tomcat的会在idea的tomcat中产生一个work目录
发现
D:\Environment\apache-tomcat-9.0.0.M6\work\Catalina\localhost\ROOT\org\apache\jsp
目录下的文件是java程序,jsp最终被转化成了java类
结论 :浏览器向服务器发送请求,不管访问什么资源,都是在访问servelt
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
//--------------------
public abstract class HttpJspBase extends HttpServlet implements HttpJspPage
//--------------------
//初始化
public void _jspInit()
//销毁
public void _jspDestroy()
//JSPService
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException
- 判断请求
内置一些对象
final javax.servlet.jsp.PageContext pageContext;//页面上下文 final javax.servlet.ServletContext application;//application final javax.servlet.ServletConfig config;//配置 javax.servlet.jsp.JspWriter out = null;//页面输出流 final java.lang.Object page = this;//页面本身 final javax.servlet.http.HttpServletRequest request final javax.servlet.http.HttpServletResponse response
输出页面前增加的代码
response.setContentType("text/html; charset=UTF-8");//设置响应页面类型 pageContext = _jspxFactory.getPageContext(this, request, response,null, false, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); out = pageContext.getOut(); _jspx_out = out;
- 以上对象我们可以在JSP页面中直接使用
在jsp中:
- 只要是java代码,就会原封不动的输出
- html代码会被out.weite()方法写出
评论 (0)