jsp技术

简介: jsp是一种动态网页技术,全称是java server pages,常见的动态网页技术还有asp和php。jsp可以近似的理解为java+html,但是jsp的实质就是servlet,也就是java类。我们知道在servlet中可以通过out.write("<h1>hello</h1>")来写页面,但是每次都要out.write(),太麻烦了,结构也不清晰,难以维护。而jsp就弥补了这些缺点,可以直接在jsp文件中使用html的标签,运行时通过jsp引擎把jsp转译成了servlet。

jsp是一种动态网页技术,全称是java server pages,常见的动态网页技术还有asp和php。jsp可以近似的理解为java+html,但是jsp的实质就是servlet,也就是java类。我们知道在servlet中可以通过out.write("<h1>hello</h1>")来写页面,但是每次都要out.write(),太麻烦了,结构也不清晰,难以维护。而jsp就弥补了这些缺点,可以直接在jsp文件中使用html的标签,运行时通过jsp引擎把jsp转译成了servlet。

hello world:

新建一个web项目,然后new jsp file:


<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>
    <title>Title</title></head><body><h1>hello jsp</h1></body></html>

把项目部署到tomcat服务器上,然后运行。在浏览器中访问:

hello

刚说了jsp本质就是servlet,运行之后在tomcat的work\Catalina\localhost\ROOT\org\apache\jsp目录下就会有index.jsp对应的Java文件和编译后的class文件。


jsp语法:


JSP语法分为三种类型:

1、编译器指令:

include:用来导入文件的,分静态导入和动态导入。

              静态导入:<%@include file="include.jsp"%>

     比如在index.jsp中用上面的代码导入include.jsp,这是源码级的导入,jsp引擎转译后,只会生成一个.java文件,也就是说include.jsp转译后的java代码是在index.java中,并不会生成include.java,也就是两个类合并成一个类。

              动态导入:<jsp:include page="include.jsp"/>

     动态导入与静态导入不同,jsp引擎转译后会生成两个类,在index.jsp中导入include.jsp,就相当于是在index.java中调用include.java类。

              注意:静态导入因为转译后源码都在同一个java文件中,所以可以在index.jsp中直接调用include.jsp中定义的内容,而动态导入则不能。

page:<%@ page contentType="text/html;charset=UTF-8" language="java"%>在转译后的servlet中其实就是response.setContentType("text/html; charset=UTF-8");。当然page指令的属性还有好多,像import、errorPage等,相信通过这个例子大家就可以体会到page指令在转译后的servlet中对应的是什么。

taglib:用来引入标签库

2、脚本语法:

注释:<%-- ... -->

声明:<%! ... %>


<%!
    int aa = 4;%>

这就是声明,转译后就是java类的成员变量。所以声明就是用来定义类的成员变量和成员方法的,用得并不多。

表达式:<% =... %>


<%
    int dd = 3;%><%=dd%>

那么在页面会直接输出3,在转译后的java文件中就是out.print(dd);。

java脚本段:<% ... %>


<%
    int dd = 3;%>

也就是在<% %>之间就可以写java代码。

3、动作语法:

<jsp:forward>:

用来做转发的,看下面的例子:

index.jsp:
<jsp:forward page="hello.jsp">
    <jsp:param name="a" value="hello"/></jsp:forward>
hello.jsp:
<%    out.print(request.getParameter("a"));
%>
访问index.jsp页面,就会转发到hello.jsp,在页面中就会输出hello。
image.png


注意:写在forward标签之后的代码不会再执行。

<jsp:include>就是动态导入,上面说过了,另外<jsp:plugin>,<jsp:getProperty>,<jsp:setProperty>和<jsp:useBean>都用得不多。


九大内置对象:


所谓内置对象,就是jsp已经给我们提供了的对象。因为jsp转译后就是servlet,而servlet中是已经定义了一些对象的。jsp有9大内置对象,接下来就看看这九大内置对象。


1、request:

就是HttpServletRequest的对象,代表来自客户端的请求,关于它的方法用得较多的是getParameter、getParameterNames、getAttribute、setAttribute等方法。

2、response:

就是HttpServletResponse的对象,代表客户端的响应,也就是可以通过response对象来组织发送到客户端的数据。

3、out:

像客户端输出内容的对象。

4、session:

表示客户端与服务器的一次会话,用户浏览某个网站时从进入到关闭所经过的时间session实际上是一个特定的时间概念。在服务器中一个用户对应一个session。当一个用户访问一个服务器时,可能会在不同页面之间切换,服务器应当通过某种方法知道这是同一个对象,这就用到了session。

5、application:

实现用户间的数据共享,可存放全局变量。开始于服务器的启动,终止于服务器的关闭。常用方法是setAttribute和getAttribute。

6、pageContext:

页面上下文对象,封装了当前jsp页面的运行信息。也就是说,如果需要当前页面的信息传到其他页面,只需要传pageContext即可,通过pageContext就可以获得request、session等九个对象的信息。

7、config:

提供一些配置信息,一般用不到。

8、page:

代表正在运行的由jsp文件产生的类对象,一般不建议使用。

9、exception:

代表了jsp文件运行时产生的异常对象,也用得很少。


相关文章
|
8月前
|
存储 XML SQL
【JavaWeb】渲染技术Jsp
JSP 全称是 Java Server Pages,Java 的服务器页面 JSP 这门技术的最大的特点在于,写 JSP 就像在写 HTML 相比 html 而言,html 只能为用户提供静态数据,而 JSP 技术允许在页面中嵌套 java 代码, 为用户提供动态数据 相比 Servlet 而言,Servlet 很难对数据进行排版,而 jsp 除了可以用 java 代码产生动态数据的同时,也很容易对数据进行排版。
|
17天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
9月前
|
存储 前端开发 Java
|
4月前
|
SQL 前端开发 Java
JSP技术详解及其在Web开发中的应用
【1月更文挑战第2天】本文将对JSP(Java Server Pages)技术进行详细的介绍和分析。JSP是一种基于Java的服务器端编程技术,它允许开发者在HTML或XML等文档中直接嵌入Java代码片段,从而动态地生成Web页面内容。本文将首先阐述JSP的基本原理和工作机制,然后讨论其在Web开发中的各种应用场景,包括表单处理、数据库访问、会话管理等,并通过实例代码展示JSP的实际应用。最后,本文将对JSP的优缺点进行评述,并对未来的发展趋势进行展望。
221 10
|
4月前
|
Java 数据库连接 数据库
通过JSP、JavaBean、JDBC、Servlet技术,实现用户登录功能
通过JSP、JavaBean、JDBC、Servlet技术,实现用户登录功能
|
5月前
|
开发框架 前端开发 JavaScript
毕业设计论文--外文翻译:JSP技术简介
毕业设计论文--外文翻译:JSP技术简介
|
7月前
|
SQL 前端开发 Java
JSP个人信息管理系统myeclipse开发sql数据库BS模式java编程struts2技术mvc框架
JSP 个人信息管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助struts2技术mvc框架,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
57 0
|
7月前
|
SQL 前端开发 Java
JSP网上订餐管理系统myeclipse开发sql数据库BS模式java编程servlet技术mvc框架
JSP 网上订餐管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助servlet技术mvc框架,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
40 0
|
7月前
|
前端开发 Cloud Native Java
JSP 技术从问世到淘汰,它到底经历了什么?
JSP 技术从问世到淘汰,它到底经历了什么?
187 0
|
8月前
|
Java 应用服务中间件
jsp技术
jsp技术
118 0