JSP基础认识

JSP出现的原因

在Servlet中,我们可以通过PrintWriter输出HTML,例如下面。但是很明显,用PrintWriter输出HTML基本上不太可能。为此我们就可以使用Servlet来简化这一系列PrintWriter的复杂工作。

PrintWriter pw = resp.getWriter();
pw.write("<html>");
pw.write("<body>");
pw.write("<h1>Welcome, " + name + "!</h1>");
pw.write("</body>");
pw.write("</html>");
pw.flush();

JSP初认识

  • JSP是Java Server Pages的缩写
  • JSP文件必须放到/src/main/webapp下,文件名必须以.jsp结尾
  • 访问JSP页面时,直接指定完整路径:例如:http://localhost:8080/hello.jsp
<html>
<head>
    <title>Hello World - JSP</title>
</head>
<body>
    <%-- JSP Comment --%>
    <h1>Hello World!</h1>
    <p>
    <%
         out.println("Your IP address is ");
    %>
    <span style="color:red">
        <%= request.getRemoteAddr() %>
    </span>
    </p>
</body>
</html>

运行结果:
在这里插入图片描述

JSP语法

  1. 指令

<%–注释–%> 用于注释
<%Java%>用于编写Java代码
<%= xxx%>用于快捷输出一个变量的值
<%@ page import=" %>导包
<%@ include file = “xxx.jsp”" %>引入JSP文件

  1. 变量

out:表示HttpServletResponse的PrintWriter;
session:表示当前HttpSession对象;
request:表示HttpServletRequest对象;

JSP与Servlet的联系

其实它们没有任何区别,因为JSP在执行前首先被编译成一个Servlet。在Tomcat的临时目录下,可以找到一个hello_jsp.java的源文件,这个文件就是Tomcat把JSP自动转换成的Servlet源码

  • JSP原码:
<html>
<head>
    <title>Hello World - JSP</title>
</head>
<body>
    <%-- JSP Comment --%>
    <h1>Hello World!</h1>
    <p>
    <%
         out.println("Your IP address is ");
    %>
    <span style="color:red">
        <%= request.getRemoteAddr() %>
    </span>
    </p>
</body>
</html>
  • 转化为Servlet代码:
public final class hello_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent,
               org.apache.jasper.runtime.JspSourceImports {

    ...

    public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
        throws java.io.IOException, javax.servlet.ServletException {
        ...
        out.write("<html>\n");
        out.write("<head>\n");
        out.write("    <title>Hello World - JSP</title>\n");
        out.write("</head>\n");
        out.write("<body>\n");
        ...
    }
    ...
}

九大内置对象

  • 内置对象概念
    在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用。

  • 内置对象分类

  1. 输出输入对象:request对象、response对象、out对象;
  2. 通信控制对象:pageContext对象、session对象、application对象;
  3. Servlet对象:page对象、config对象;
  4. 错误处理对象:exception对象。
  • 内置对象作用

Request对象:代表请求对象,主要用于接收客户段数据。

Response对象:代表响应对象,主要用于向客户端发送数据

Out对象:主要用于向客户端输出数据

Session对象:主要用来保持在服务器与一个客户端之间需要保留的数据。当客户端关闭网站的所有网页或关闭浏览器时,session对象中保存的数据会自动清除。比如购物车。

Application对象:用于保存用户信息,并且一个容器中的多个用户共享一个application对象,其保存的信息被所有用户所共享。一个用户用完了,其他用户还可能使用。

PageContext对象:用来管理网页属性,为JSP页面包装页面的上下文。

Config对象:Servlet的配置对象

Page对象:用来处理JSP网页,指的是JSP页面对象本身

Exception对象:处理JSP文件执行时发生的错误和异常只有在JSP页面的page指令中指定isErrorPage = "true"后,才可以在本页面使用exception对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值