JSP开发 |
您所在的位置:网站首页 › 建行怎么看开户行名字 › JSP开发 |
我们从前面的章节可以看到,Servlet就是一个能处理HTTP请求,发送HTTP响应的小程序,而发送响应无非就是获取PrintWriter,然后输出HTML: PrintWriter pw = resp.getWriter(); pw.write(""); pw.write(""); pw.write("Welcome, " + name + "!"); pw.write(""); pw.write(""); pw.flush();只不过,用PrintWriter输出HTML比较痛苦,因为不但要正确编写HTML,还需要插入各种变量。如果想在Servlet中输出一个类似新浪首页的HTML,写对HTML基本上不太可能。 那有没有更简单的输出HTML的办法? 有!我们可以使用JSP。 JSP是Java Server Pages的缩写,它的文件必须放到/src/main/webapp下,文件名必须以.jsp结尾,整个文件与HTML并无太大区别,但需要插入变量,或者动态输出的地方,使用特殊指令。 我们来编写一个hello.jsp,内容如下: Hello World - JSP Hello World!
整个JSP的内容实际上是一个HTML,但是稍有不同: 包含在之间的是JSP的注释,它们会被完全忽略; 包含在之间的是Java代码,可以编写任意Java代码; 如果使用则可以快捷输出一个变量的值。JSP页面内置了几个变量: out:表示HttpServletResponse的PrintWriter; session:表示当前HttpSession对象; request:表示HttpServletRequest对象。这几个变量可以直接使用。 访问JSP页面时,直接指定完整路径。例如,http://localhost:8080/hello.jsp,浏览器显示如下: JSP和Servlet有什么区别?其实它们没有任何区别,因为JSP在执行前首先被编译成一个Servlet。在Tomcat的临时目录下,可以找到一个hello_jsp.java的源文件,这个文件就是Tomcat把JSP自动转换成的Servlet源码: package org.apache.jsp; import ... 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本质上就是一个Servlet,只不过无需配置映射路径,Web Server会根据路径查找对应的.jsp文件,如果找到了,就自动编译成Servlet再执行。在服务器运行过程中,如果修改了JSP的内容,那么服务器会自动重新编译。 JSP高级功能JSP的指令非常复杂,除了外,JSP页面本身可以通过page指令引入Java类: 这样后续的Java代码才能引用简单类名而不是完整类名。 使用include指令可以引入另一个JSP文件: Index Page JSP TagJSP还允许自定义输出的tag,例如: JSP Tag需要正确引入taglib的jar包,并且还需要正确声明,使用起来非常复杂,对于页面开发来说,不推荐使用JSP Tag,因为我们后续会介绍更简单的模板引擎,这里我们不再介绍如何使用taglib。 练习编写一个简单的JSP文件,输出当前日期和时间。 JSP练习 小结JSP是一种在HTML中嵌入动态输出的文件,它和Servlet正好相反,Servlet是在Java代码中嵌入输出HTML; JSP可以引入并使用JSP Tag,但由于其语法复杂,不推荐使用; JSP本身目前已经很少使用,我们只需要了解其基本用法即可。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |