在Servlet中,我们可以通过PrintWriter输出HTML,例如下面。但是很明显,用PrintWriter输出HTML基本上不太可能。为此我们就可以使用Servlet来简化这一系列PrintWriter的复杂工作。
PrintWriter pw = resp.getWriter();
pw.write("");
pw.write("");
pw.write("Welcome, " + name + "!");
pw.write("");
pw.write("");
pw.flush();
JSP初认识
JSP是Java Server Pages的缩写JSP文件必须放到/src/main/webapp下,文件名必须以.jsp结尾访问JSP页面时,直接指定完整路径:例如:http://localhost:8080/hello.jsp
Hello World - JSP
<%-- JSP Comment --%>
Hello World!
<%
out.println("Your IP address is ");
%>
<%= request.getRemoteAddr() %>
运行结果:
- 指令
<%–注释–%> 用于注释
<%Java%>用于编写Java代码
<%= xxx%>用于快捷输出一个变量的值
<%@ page import=" %>导包
<%@ include file = “xxx.jsp”" %>引入JSP文件
- 变量
JSP与Servlet的联系out:表示HttpServletResponse的PrintWriter;
session:表示当前HttpSession对象;
request:表示HttpServletRequest对象;
其实它们没有任何区别,因为JSP在执行前首先被编译成一个Servlet。在Tomcat的临时目录下,可以找到一个hello_jsp.java的源文件,这个文件就是Tomcat把JSP自动转换成的Servlet源码
JSP原码:
Hello World - JSP
<%-- JSP Comment --%>
Hello World!
<%
out.println("Your IP address is ");
%>
<%= request.getRemoteAddr() %>
转化为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("n");
out.write("n");
out.write(" Hello World - JSP n");
out.write("n");
out.write("n");
...
}
...
}
九大内置对象
内置对象概念
在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用。
内置对象分类
- 输出输入对象:request对象、response对象、out对象;通信控制对象:pageContext对象、session对象、application对象;Servlet对象:page对象、config对象;错误处理对象:exception对象。
内置对象作用
Request对象:代表请求对象,主要用于接收客户段数据。
Response对象:代表响应对象,主要用于向客户端发送数据
Out对象:主要用于向客户端输出数据
Session对象:主要用来保持在服务器与一个客户端之间需要保留的数据。当客户端关闭网站的所有网页或关闭浏览器时,session对象中保存的数据会自动清除。比如购物车。
Application对象:用于保存用户信息,并且一个容器中的多个用户共享一个application对象,其保存的信息被所有用户所共享。一个用户用完了,其他用户还可能使用。
PageContext对象:用来管理网页属性,为JSP页面包装页面的上下文。
Config对象:Servlet的配置对象
Page对象:用来处理JSP网页,指的是JSP页面对象本身
Exception对象:处理JSP文件执行时发生的错误和异常只有在JSP页面的page指令中指定isErrorPage = "true"后,才可以在本页面使用exception对象。



