栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSP学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP学习

JSP(Java Server Pages)页面虽然看上去和HTML没有区别,但如果服务器要给浏览器响应动态页面,就要处理Servlet。
而JSP与Servlet都是用于动态页面,在JSP还没有面试的年代,后端程序员写输出前端页面需要这样操作:
        resp.getWriter().write("");
        resp.getWriter().write("");
        resp.getWriter().write("Hello World");
        resp.getWriter().write("");

JSP和HTML的区别就是:JSP是动态的;而HTML是伪动态的,即使利用一些JS让页面改变,其本质上还是没有与服务器发生交互。所以JSP中是可以嵌入Java代码的,目的是给用户提供动态数据。

JSP原理:
IDEA中使用Tomcat,会在IDEA的Tomcat目录中生成一个work目录,路径如下:


work目录继续深入:

最后停留在Java代码,因为JSP最后也会被转换成Java类。说明浏览器向服务器发送任何请求,其实都是在访问Servlet。

现在引入JSP的依赖:

    
      javax.servlet.jsp
      javax.servlet.jsp-api
      2.3.3
    

JSP本质上就是一个Servlet,其内置了一些对象,可以在上述的index.jsp.java中看到:

    final javax.servlet.jsp.PageContext pageContext;//页面上下文
    javax.servlet.http.HttpSession session = null;//Session
    final javax.servlet.ServletContext application;//与Servlet中的ServletContext一致
    final javax.servlet.ServletConfig config;//区别于ServletContext,ServletConfig是大仓库中小仓库
    javax.servlet.jsp.JspWriter out = null;//输出对象
    final java.lang.Object page = this;//page代表当前页
    javax.servlet.jsp.JspWriter _jspx_out = null;     
    javax.servlet.jsp.PageContext _jspx_page_context = null;

以上这些对象JSP可以直接使用
里面有如下代码实现了index.jsp页面的HTML代码:

    try {
      response.setContentType("text/html");//设置了响应页面类型
      pageContext = _jspxFactory.getPageContext(this, request, response,
      			null, true, 8192, true);//this指的是page
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();//说明了application本质上是ServletContext
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();//此处回忆起之前Demo中为什么要将PrintWriter对象命名为out
      _jspx_out = out;

//输出页面前增加了代码
      out.write("n");
      out.write("n");
      out.write("Hello World!n");
      out.write("n");
      out.write("n");

在index.jsp中所写的一起内容,或主动或被动最终都会转换成上面的Java代码输出。
例如,hello.jsp内容如下:

<%
    String name = "Ju";
%>

name: <%=name%>

启动Tomcat后进入hello.jsp页面,输出

此时进入上述的最后JSP目录下,查看hello.jsp.java的代码,发现上述的代码已经转换成下列的Java代码:

String name = "Ju";

      out.write("rn");
      out.write("rn");
      out.write("name: ");
      out.print(name);

在JSP页面中,只要是Java代码就会原封不动地输出,HTML代码会被转换成out.write输出。-是被“渲染出来的”。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/345169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号