Java-Jsp是什么原理又是什么

白衣少年
2022-11-10 / 0 评论 / 34 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年11月10日,已超过567天没有更新,若内容或图片失效,请留言反馈。

什么是Jsp

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

最大的特点

  • 语法和HTML类似

区别

  • HTML只给用户提供静态的数据
  • JSP页面可以嵌入Java代码,为用户提供动态数据

Jsp原理

Jsp是怎么执行的?

代码层面

<html>
<body>
  <h2>Hello World!</h2>
</body>
</html>

jsp代码.png

服务器内部
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
  1. 判断请求
  2. 内置一些对象

    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
  3. 输出页面前增加的代码

    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;
  4. 以上对象我们可以在JSP页面中直接使用
  5. 在jsp中:

    • 只要是java代码,就会原封不动的输出
    • html代码会被out.weite()方法写出
3

打赏

评论 (0)

OwO
取消