zl程序教程

您现在的位置是:首页 >  Javascript

当前栏目

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

2023-02-18 16:41:17 时间

什么是Jsp

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

最大的特点

  • 语法和HTML类似

区别

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

Jsp原理

Jsp是怎么执行的?

代码层面

  Hello World!

服务器内部 : 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()方法写出