JSP

什么是JSP

Java Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术
最大的特点:

  写JSP就像在写HTML

  区别:

    HTML只给用户提供静态的数据

    JSP页面中可以嵌入JAVA代码,为用户提供动态数据;

JSP原理

思路:JSP到底怎么执行的

  `代码层面没有任何问题

  `服务器内部工作

   tomcat中有一个work目录;

   IDEA中使用Tomcat的会在IDEA的tomcat中生产一个work目录

  

 这个文件是启动tomcat动态生成,tomcat启动产生四条输出,第一条就是这个文件

我电脑的位置

C:\Users\L\.IntelliJIdea2018.3\system\tomcat\Unnamed_javaweb-session-cookie\work\Catalina\localhost\ROOT\org\apache\jsp

发现页面转变成了Java程序

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

JSP最终也会被转换成为一个Java类

JSP本质上就是一个Servlet

// 初始化
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;  //页面上下文
    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;      //当前页
  HttpServletRequest request            //请求
  HttpServletResponse response          //响应

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;

4.以上的这些个对象我们可以在JSP页面中直接使用!

相当于我们自己创建了一个继承了httpservlet  的实现类,然后在里面把所有方法的类都new了一个

Java代码要在<% %>中写

动态是更具不同的用户访问返回不同的内容 指可以从数据库等地方拿出不同的数据

在]SP页面中;

 只要是JAVA代码就会原封不动的输出;

 如果是HTML代码,就会被转换为:

 out.write("<html>\r\n");

这样的格式,输出到前端

原文地址:https://www.cnblogs.com/nuliyao123/p/14438501.html