JSP原理-为什么说JSP就是一个Servlet

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

就像在HTML语言中嵌入Java语言,为用户提供动态页面。

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

JSP最终也会被转化为一个Java类,JSP本质就是一个Servlet

JSP原码:

1.判断请求

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

2.内置一些对象(pageContext、session、applicationContext、config、out、page、request、response)

final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
javax.servlet.jsp.JspWriter _jspx_out = null;
javax.servlet.jsp.PageContext _jspx_page_context = null;

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;

以上的这些对象我们可以在JSP中直接使用,因为JSP原码中已经设置了。
4.然后把我们在jsp页面中的html代码转换为java代码:

out.write("\n");
out.write("\n");
out.write("

Hello World!

\n"
); out.write("\n"); out.write("\n");

jsp创建的流程:

JSP原理-为什么说JSP就是一个Servlet_第1张图片
在JSP页面中,只要是Java代码就会原封不动输出,如果是html代码就会转化为out.pring(“xxxxx\n”)的格式输出到前端

你可能感兴趣的:(JSP原理-为什么说JSP就是一个Servlet)