JSP学习文档(上)

简介: JSP学习文档

1 JSP基础


1.1 JSP简介


JSP全称是Java Server Page,它和Servlet一样,也是sun公司推出的一套开发动态web资源的技术,称为JSP/Servlet规范。JSP的本质其实就是一个Servlet。


1.2 JSP和HTML以及Servlet的适用场景


image.png


1.3 JSP简单入门


创建JavaWeb工程



在index.jsp中填写内容


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>JSP的入门</title>
  </head>
  <body>
      这是第一个JSP页面
  </body>
</html>


部署项目


沿用会话管理工程的部署方式即可。


测试运行



1.4 JSP说明


写在之前: 明确JSP就是一个Servlet。是一个特殊的Servlet。


JSP的原理:


客户端提交请求


——Tomcat服务器解析请求地址


——找到JSP页面


——Tomcat将JSP页面翻译成Servlet的java文件


——将翻译好的.java文件编译成.class文件


——返回到客户浏览器上。


1)执行过程分析图



2)JSP的.java文件内容分析(看不懂跳过,反jsp本质就是servlet)


当我们打开index.jsp翻译的java文件看到的就是public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase类的声明,然后我们在Tomcat的源码中找到类的声明,如下图:



这张图一出场,就表明我们写的JSP它本质就是一个HttpServlet了。



同时,我们在index_jsp.java文件中找到了输出页面的代码,并且在浏览器端查看源文件,看到的内容是一样的。这也就是说明,我们的浏览器上的内容,在通过jsp展示时,本质都是用out.write()输出出来的。


讲到这里,我们应该清楚的认识到,JSP它是一个特殊的Servlet,主要是用于展示动态数据。它展示的方式是用流把数据输出出来,而我们在使用JSP时,涉及HTML的部分,都与HTML的用法一致,这部分称为jsp中的模板元素,在开发过程中,先写好这些模板元素,因为它们决定了页面的外观。


2 JSP应用


2.1 JSP语法


1)Java代码块


在jsp中,可以使用java脚本代码。形式为:<% 此处写java代码 %>


但是,在实际开发中,极少使用此种形式编写java代码。同时需要注意的是:


<%
    在里面写java程序脚本需要注意:这里面的内容由tomcat负责翻译,翻译之后是service方法的成员变量
%>


示例:


<!--Java代码块-->
<% out.println("这是Java代码块");%>
<hr/>


2)JSP表达式


在jsp中,可以使用特定表达式语法,形式为:<%=表达式%>


jsp在翻译完后是out.print(表达式内容);


所以:<%out.print("当前时间);%>和<%="当前时间"%>是一样的。


在实际开发中,这种表达式语法用的也很少使用。


示例:


<!--JSP表达式-->
<%="这是JSP表达式"%><br/>
就相当于<br/>
<%out.println("这是没有JSP表达式输出的");%>


3)JSP声明


在JSP中也可以声明一些变量,方法,静态方法,形式为:<%! 声明的内容 %>

使用JSP声明需要注意:


<%! 
    需要注意的是: 写在里面的内容将会被tomcat翻译成全局的属性或者类方法。
%>                                    


示例:


<!--JSP声明-->
<%! String str = "声明语法格式";%>
<%=str%>


4)JSP注释


在使用JSP时,它有自己的注释,形式为:<%–注释–%>


需要注意的是:


在Jsp中可以使用html的注释,但是只能注释html元素,不能注释java程序片段和表达式。同时,被html注释部分会参与翻译,并且会在浏览器上显示


jsp的注释不仅可以注释java程序片段,也可以注释html元素,并且被jsp注释的部分不会参与翻译成.java文件,也不会在浏览器上显示。


示例:


<%--JSP注释--%>
<!--HTML注释-->


5)语法的示例


JSP语法完整示例代码


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSP语法</title>
</head>
<body>
<!--Java代码块-->
<% out.println("这是Java代码块");%>
<hr/>
<!--JSP表达式-->
<%="这是JSP表达式"%><br/>
就相当于<br/>
<%out.println("这是没有JSP表达式输出的");%>
<hr/>
<!--JSP声明-->
<%! String str = "声明语法格式";%>
<%=str%>
<hr/>
<%--JSP注释--%>
<!--HTML注释-->
</body>
</html>


JSP语法运行结果



2.2 JSP指令


1)page指令


  • language: 告知引擎,脚本使用的是java,默认是java,支持java。不写也行。


  • extends:告知引擎,JSP对应的Servlet的父类是哪个,不需要写,也不需要改。


  • import:告知引擎,导入哪些包(类)。


注意:


引擎会自动导入:java.lang.*,javax.servlet.*,javax.servlet.http.*,javax.servlet.jsp.*


导入的形式: (用Eclipse:Alt+/ 自动导入)


​<%@page import=”java.util.Date,java.util.UUID”%>
或者:
​<%@page import=”java.util.Date”%>
​<%@page import=”java.util.UUID”%> 


  • session:告知引擎是否产生HttpSession对象,即是否在代码中调用


  • request.getSession()。默认是true。


  • buffer:JspWriter用于输出JSP内容到页面上。告知引擎,设定他的缓存大小。默认8kb。


  • errorPage:告知引擎,当前页面出现异常后,应该转发到哪个页面上(路径写法:/代表当前应用)


小贴士:当在errorpage上使用了isErrorPage=true之后,ie8有时候不能正常显示


配置全局错误页面:web.xml


<error-page>    
    <exception-type>java.lang.Exception</exception-type>                
    <location>/error.jsp</location>
</error-page>
<error-page>
    <error-code>404</error-code>
    <location>/404.html</location>
</error-page>                                 


当使用了全局错误页面,就无须再写errorPage来实现转到错误页面,而是由服务器负责跳转到错误页面。


  • isErrorPage:告知引擎,是否抓住异常。如果该属性为true,页面中就可以使用exception对象,打印异常的详细信息。默认值是false。


  • contentType:告知引擎,响应正文的MIME类型。contentType="text/html;charset=UTF-8"


相当于response.setContentType("text/html;charset=UTF-8");


  • pageEncoding:告知引擎,翻译jsp时(从磁盘上读取jsp文件)所用的码表。pageEncoding="UTF-8"相当于告知引擎用UTF-8读取JSP


  • isELIgnored:告知引擎,是否忽略EL表达式,默认值是false,不忽略。


相关文章
jsp页面中显示word/excel文档方法
jsp页面中显示word/excel文档方法
291 0
|
6月前
|
Java 数据库
jsp CRM客户管理系统(含数据库脚本以及文档)
jsp CRM客户管理系统(含数据库脚本以及文档)
134 10
|
7月前
|
存储 Java 关系型数据库
ssm151大学生就业信息管理系统+jsp(文档+源码)_kaic
大学生就业信息管理系统基于现代经济快速发展和信息化技术的升级,旨在通过软件工具提升数据管理效率。该系统利用SSM框架、Java语言和Mysql数据库开发,实现数据的科学化、规范化与自动化管理。系统界面简洁美观,功能模块布局合理,提供高效的数据处理能力,并注重数据安全。通过此系统,管理者能够快速处理大量信息,提高工作效率,同时确保数据的安全性和可靠性。关键词:大学生就业信息管理系统;SSM框架;Mysql;自动化。
|
7月前
|
存储 Java 关系型数据库
ssm152家庭财务管理系统设计与实现+jsp(文档+源码)_kaic
本家庭财务管理系统基于现代经济快速发展和信息化技术升级的背景,采用SSM框架、Java语言及Mysql数据库开发。系统旨在帮助用户高效处理大量数据信息,提升财务管理效率,实现数据的整体化、规范化与自动化管理。该系统界面简洁美观,功能布局合理,具备良好的易用性和扩展性,并提供多种安全措施保障数据安全。通过科学化的管理方式,有效减少人工操作失误,提高工作效率。
|
7月前
|
存储 Java 关系型数据库
ssm150旅游网站的设计与实现+jsp(文档+源码)_kaic
本旅游网站基于现代经济快节奏发展和信息化技术的升级,采用SSM框架、Java语言及Mysql数据库开发。它实现了景点、新闻、酒店、飞机票和火车票管理等功能,帮助管理者高效处理大量数据信息,提升工作效率。系统界面简洁美观,功能布局合理,同时提供了数据安全解决方案,确保信息的安全性和可靠性。该网站不仅提高了事务处理效率,还实现了数据的整体化、规范化与自动化管理。关键词:旅游网站;SSM框架;Mysql;自动化。
|
安全 Java 关系型数据库
springboot+jsp商务安全邮箱(源码+文档)
一款基于SpringBoot的商务安全邮箱项目,包括收件箱、草稿箱、已发送、垃圾邮箱和删除邮件等功能。项目源码与部署详情可联系作者,使用技术有Java、SpringBoot、Mybatis、JDK1.8和MySQL等。
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
187 0
|
Java 关系型数据库 MySQL
基于javaWeb+jsp人力资源管理系统(含文档)
基于javaWeb+jsp人力资源管理系统(含文档)
125 0
|
前端开发 JavaScript Java
servlet+jsp实现小区门户网站后台管理系统(源码+数据库+文档)
servlet+jsp实现小区门户网站后台管理系统(源码+数据库+文档)
161 0
|
Java 关系型数据库 应用服务中间件
0009Java程序设计-jsp在线学习平台设计与实现
0009Java程序设计-jsp在线学习平台设计与实现
182 0
0009Java程序设计-jsp在线学习平台设计与实现