03-JavaWeb之JSP

03-JavaWeb之JSP

一、JSP介绍

我们学习了servlet来后,就可以接收客户端的请求,并使用响应对象给浏览器返回结果。但是,使用response返回结果是件 “很可怕的事” 。例如:就为了返回一个网页,我们需要进行复杂的拼接,很明显这不是明智之举。所以,我们需要jsp来完成。

response.setContentType("text/html;charset=utf-8");

PrintWriter writer = response.getWriter();

writer.println("");

writer.println("");

writer.println("");

writer.println("测试");

writer.println("");

writer.println("");

writer.println("");

writer.println("

测试使用response对象响应网页

");

writer.println("");

writer.println("");

writer.close();

JSP(全称JavaServer Pages)是由Sun公司主导创建的一种动态网页技术标准。

JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容,从而实现数据的动态显示。

JSP文件后缀名为 *.jsp

二、第一个JSP

尝试动态的返回当前时间给客户端

<%@ page import="java.text.SimpleDateFormat" %>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

第一个jsp

当前系统时间为:

<%= new SimpleDateFormat("YYYY-MM-dd HH:mm:ss").format(new Date()) %>

解释: 1.<%@ page ... ... %> 称为JSP的page指令,可用于定义JSP页面的各种属性。 2.<%= java代码 %> 称为jsp表达式,用于将已经声明的变量或者表达式结果输出到网页上面。

三、如何在JSP中编写java代码

在体验了JSP的helloworld后,咱们来具体说说在jsp编写java有哪些方式?

3.1 JSP注释

<%-- 注释内容 --%>

3.2 JSP声明

一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。

JSP声明的语法格式:

<%! 声明变量或方法 %>

案例:

<%! int i = 0; %>

<%! int a, b, c; %>

3.3 JSP脚本

JSP脚本可以包含Java代码片段。语法如下:

<% Java代码片段 %>

案例1:使用声明好的变量,并打印到页面上。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

测试JSP脚本

<%!

int a = 1;

String str = "hello";

%>

<%

a++;

int length = str.length();

out.println("a:"+a+",length:"+length); //将a和length 输出到页面

%>

案例2:使用分支语句

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

测试JSP脚本

<%! int day = 3; %>

<%

if (day == 6 | day == 7) {

%>

今天是周末

<%

} else {

%>

今天需要工作

<% } %>

可以发现,这样的代码可读性就不好了,不便于后期的维护和扩展。咱们后续会给出解决方案。

3.4 JSP表达式

jsp表达式,用于将已经声明的变量或者表达式结果输出到网页上面。语法如下:

<%= java代码 %> 等价于 JSP脚本中编写的:out.println( 内容 );

四、JSP指令

4.1 指令语法

JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。

语法格式如下:

<%@ 指令名 属性名1="属性值" 属性名2="属性值" ... %>

4.2 page指令

page指令一般书写在jsp页面的第一行,用于定义jsp页面的相关属性。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

属性解释:

1. language:定义JSP页面所用的脚本语言,默认是Java

2. contentType:指定当前JSP页面的MIME类型和字符编码

3. pageEncoding:设置页面编码

4. import:导入要使用的Java类

5. errorPage:指定当JSP页面发生异常时需要转向的错误处理页面

6. isErrorPage:指定当前页面是否可以作为另一个JSP页面的错误处理页面

7. 等等

4.3 include指令

JSP可以通过include指令来包含其他JSP文件,包含的文件就好像是该JSP文件的一部分,会被同时编译执行。 在很多网页中头尾两部分基本都是不变的,所以没必要在每个页面中单独写一遍,只需要编写1份,在需要的页面中使用include指令引入即可。 include指令的语法格式如下:

<%@ include file="jsp路径" %>

4.4 taglib指令

用于引入标签库,在JSTL章节具体讲解。

<%@ taglib uri="标签库的uri路径" prefix="自定义前缀" %>

五、JSP的九大内置对象和四大作用域

5.1 九大内置(隐式)对象

JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。 1.request对象 request对象是javax.servlet.http.HttpServletRequest 类的实例。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。 request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。

2.response对象 response对象是javax.servlet.http.HttpServletResponse类的实例。当服务器创建request对象时会同时创建用于响应这个客户端的response对象。 response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等。

3.out对象 out对象是 javax.servlet.jsp.JspWriter 类的实例,用来在response对象中写入内容。

4.session对象 session对象是 javax.servlet.http.HttpSession 类的实例。和Java Servlets中的session对象有一样的行为。session对象用来跟踪在各个客户端请求间的会话。

5.application对象 application对象直接包装了servlet的Servle

相关数据

射鵰英雄傳 (2017年電視劇)
365bet体育投注网

射鵰英雄傳 (2017年電視劇)

⌚ 09-11 👁️‍🗨️ 2113
魔兽重皮哪里剥的多刷的快(刷重皮最快的地方及获得方法)
beat365为什么登录不了

魔兽重皮哪里剥的多刷的快(刷重皮最快的地方及获得方法)

⌚ 07-17 👁️‍🗨️ 7897
适用于 Mac 的邮件使用手册
365bet体育比分直播

适用于 Mac 的邮件使用手册

⌚ 08-20 👁️‍🗨️ 3374