Java Web学习2(JSP技术)

目录

一、基础知识

1、JSP简介

 2、JSP的作用

 3、开发环境的安装

4、JSP原理

 二、JSP语法

1、指令标识(JSP指令)

2、脚本标识

3、JSP注释

4、动作标识(JSP行为)

三、JSP内置对象(JSP隐含对象)

1.request对象

2.response对象

3.session对象

 4.application对象

5.out对象

四、JavaBean

1、JavaBean简介

2、JavaBean规则

3、应用举例


 

一、基础知识

1、JSP简介

JSP(全称Java Server Pages)是与PHP、ASP等语言类似的运行在服务端的语言,在一个JSP页面中可以包括指令标识、HTML代码、JavaScript代码、嵌入的Java、JSP动作标识等。

<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="./jquery/jquery-3.4.1.js"></script>
<script type="text/javascript"> //javascript代码
	$(function(){
		$("input").click(function(){
			alert("按钮事件");
		});
	})
</script>
</head>

<body>
	<input type="button" value="按钮"/> <!--html代码 -->
	<%  
		out.println("hello world");//嵌入的Java代码
	%>
</body>

 2、JSP的作用

网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。JSP可以访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

 3、开发环境的安装

参考之前的博客:https://blog.csdn.net/kenjianqi1647/article/details/105000777

4、JSP原理

JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例,Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。

 网络服务器上有JSP容器,JSP 容器与 Web 服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于 JSP 网页的特殊元素。

 Web服务器使用JSP创建网页的步骤如下:

  • 浏览器发送一个HTTP请求给Web服务器,服务器识别出是JSP请求,将该请求传递给JSP引擎。
  • JSP引擎从磁盘中载入JSP文件,转化为Servlet,并编译成Servlet类
  • Servlet引擎载入并执行Servlet类,产生HTML网页
  • Web服务器将网页传给客户端

 二、JSP语法

1、指令标识(JSP指令)

指令标识用于设定JSP页面范围内的相关属性,被服务器解释并执行,并不会产生任何内容输出到网页中。

 语法格式:

<%@ 指令名 属性="属性值" %>
  • 指令名:用于指定指令的名称,JSP中包括page,include,taglib三条指令。

(1)page指令应用:

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

(2)include指令应用

通过该指令可以在一个JSP页面中包含另一个JSP页面,使用include指令可以提高代码的重用性。

<%@ include file="path">

为了使整个页面的层次结构不发生冲突,应将被包含的页面中将html、body等标记删除。

2、脚本标识

脚本标识用于生成页面中的动态内容。包括三部分:JSP表达式、声明标识和脚本程序。 

 (1)脚本程序

脚本程序就是在JSP页面中嵌入的java代码。可以包含任意java语句、变量、方法或表达式。

语法格式:

<% Java代码 %>

 (2)声明标识(JSP声明)

声明标识用于在JSP页面中定义全局的变量或方法。通过定义可以被整个JSP页面访问。

语法格式:

<%! 声明变量或方法的代码 %>

 应用举例:

<%!
    int number=0;//声明全局变量
    int count(){ //声明全局方法
        number++;
        return number;
    }
%>

(3)JSP表达式

JSP表达式用于向页面输出信息。

语法格式:

<%= 表达式 %>

3、JSP注释

JSP注释主要为代码做注释或将某段代码注释掉。

JSP特有的注释方式为隐藏注释,使用浏览器查看HTML源码时,用户也看不到注释,安全性比较高。

语法格式:

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

4、动作标识(JSP行为)

动作标识利用XML语法格式的标记来控制Servlet引擎的行为。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。动作标识与指令标识不同,动作标识在请求阶段起作用。

常用的动作标识如下:

 (1)包含文件标识<jsp:include>

<jsp:include>动作标识用于向当前页面中包含其他的文件。注意它与include指令标识的区别如下:

  • include指令标识是在编译级别完成的包含(JSP文件被转换成Servlet的时候),即把当前JSP和被包含的JSP合并成一个JSP,然后再编译成一个Servlet。
  • include动作标识是在运行级别完成的包含(插入文件的时候是在页面被请求的时候),即当前JSP和被包含的JSP都会各自生成Servlet,然后在执行当前JSP的Servlet时完成包含另一个JSP的Servlet。

语法格式如下:

<jsp:include page="url" flush="false|true">
  • page:为指定被包含文件的相对路径。
  • flush:设置是否刷新缓冲区。

(2)请求转发标识<jsp:forward>

请求转发标识可以将请求转发到其他的Web资源,例如另一个JSP页面、HTML页面,Servlet等,请求转发后,当前页面不再被执行,而去执行目标页面。

语法格式如下:

<jsp:forward page="url"/>

page:为请求转发的目标页面。

(3)传递参数标识<jsp:param>

该标识用于为其他标识传递参数。

<jsp:param name="参数名" value="参数值"/>

 name:用于指定参数的名称。

value:用于设置对应的参数值。

三、JSP内置对象(JSP隐含对象)

JSP的内置对象用来实现JSP应用,在JSP中一共定义了9个JSP内置对象。

1.request对象

通过request对象提供的相应方法可处理客户端浏览器提交的HTTP请求中的各项参数。

应用举例:

WebContent下新建NewFile.jsp和deal.jsp文件

NewFile.jsp下:

<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="./jquery/jquery-3.4.1.js"></script>
<script type="text/javascript"> //javascript代码

</script>
</head>

<body>
	<a href="deal.jsp?id=1&user=">处理页</a> <!-- id为传递参数 -->
</body>

deal.jsp下:

<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="utf-8"%>
<%
String id=request.getParameter("id");	//获取id参数的值
String user=request.getParameter("user");//获取user参数的值
String pwd=request.getParameter("pwd");//获取pwd参数值
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>处理页</title>
</head>
<body>
id参数的值为:<%=id %><br>
user参数的值为:<%=user %><br>
pwd参数的值为:<%=pwd %>
</body>
</html>

测试结果:

2.response对象

response对象用于响应客户请求,向客户端输出信息。

3.session对象

session对象用来跟踪在各个客户端请求间的会话。通过session可以在应用程序的web页面间进行跳转时,保存用户的状态,使整个会话一直存在下去,直到浏览器关闭。

 4.application对象

application对象用于保存所有应用程序中的公有数据。

5.out对象

out对象用于在Web浏览器内输出信息,并管理应用服务器上的输出缓存区。

四、JavaBean

1、JavaBean简介

JavaBean可以将JSP中HTML代码和Java代码相分离,将Java代码单独封装成一个处理某种业务逻辑的类,然后在JSP页面中调用此类,降低了HTML代码和Java代码之间的耦合度,简化了JSP页面,提高了Java代码的重用性。

2、JavaBean规则

  • 要有无参的构造函数
  • 成员属性私有化
  • 封装的属性如果需要被外所操作,必须写为public类型setter、getter方法

3、应用举例

编写一个邮件地址验证程序

(1)Java Resources目录下添加Email类

Email.java文件内容如下:

package com.lyq.bean;

import java.io.Serializable;
/**
 * 邮件对象JavaBean
 */
public class Email implements Serializable {
	//  serialVersionUID 值
	private static final long serialVersionUID = 1L;
	// Email地址
	private String mailAdd;
	// 是否是一个标准的Email地址
	private boolean eamil;
	/**
	 * 默认无参的构造方法
	 */
	public Email() {
	}
	/**
	 * 构造方法
	 * @param mailAdd Email地址
	 */
	public Email(String mailAdd) {
		this.mailAdd = mailAdd;
	}
	/**
	 * 是否是一个标准的Email地址
	 * @return 布尔值
	 */
	public boolean isEamil() {
		// 正则表达式,定义邮箱格式
		String regex = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"; 
		// matches()方法可判断字符串是否与正则表达式匹配
		if (mailAdd.matches(regex)) { 
			// eamil为真
			eamil = true;
		}
		// 返回eamil
		return eamil;
	}
	public String getMailAdd() {
		return mailAdd;
	}
	public void setMailAdd(String mailAdd) {
		this.mailAdd = mailAdd;
	}
}

 (2)WebContent目录下添加index.jsp文件

index.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="result.jsp" method="post">
		<table align="center" width="300" border="1" height="150">
			<tr>
				<td colspan="2" align="center">
					<b>邮箱认证系统</b>
				</td>
			</tr>
			<tr>
				<td align="right">邮箱地址:</td>
				<td><input type="text" name="mailAdd"/></td>
			</tr>
			<tr>
				<td colspan="2" align="center">
					<input type="submit" />
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

 (3)WebContent目录下添加result.jsp文件

result.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@page import="com.lyq.bean.Email"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div align="center">
		<%
			// 获取邮箱地址
			String mailAdd = request.getParameter("mailAdd");
			// 实例化Email,并对mailAdd赋值
			Email email = new Email(mailAdd);
			// 判断是否是标准的邮箱地址
			if(email.isEamil()){
				out.print(mailAdd + " <br>是一个标准的邮箱地址!<br>");
			}else{
				out.print(mailAdd + " <br>不是一个标准的邮箱地址!<br>");
			}
		%>
		<a href="index.jsp">返回</a>
	</div>
</body>
</html>

 测试结果如下:

参考文献:

https://www.runoob.com/jsp/jsp-syntax.html

发布了157 篇原创文章 · 获赞 217 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/kenjianqi1647/article/details/105271220
今日推荐