jsp上手 & 知识总结

jsp的组成

JSP页面主要是由HTML语言注释Java代码块指令标记,JSP动作标记,等五个元素组成

html标记语言

如果学过web前端的话,就很能理解了,就是关于关于我们网页呈现的一种语言。

就如下面代码,一个简单的网站结构,也就是我们的html部分


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>初始网站 title here</title>
</head>
<body>
	<br>
	<div>网站首页面</div>
</body>
</html>

jsp注释

在jsp中文件中,我们会使用到两种注释,一种注释是针对于我们的html网页,另一种是针对于我们的java内嵌代码上的注释

**HTML 注释:**HTML 注释在生成的 HTML 页面中可见,但不会被浏览器解析和显示。

<!-- 这是一个 HTML 注释 -->

JSP 注释在 JSP 页面中可见,但不会被发送到客户端浏览器。

<%-- 这是一个 JSP 注释 --%>
//由于是Java代码块,我们直接使用//也是能行的

JSP定义Java代码的方式

<% %> 标签中直接编写代码块:

<%
    int n = 0;
    n++;
    out.print("n = " + n);
%>

<%! %> 标签定义成员变量和方法:

//定义声明我们的变量
<%! 
    private int n;

    public void increment() {
        n++;
    }
%>
//具体运行部分

<%
    increment();
    out.print("n = " + n);
%>

<%= %> 标签输出表达式的结果:

<%
    int n = 0;
    n++;
%>

n = <%= n %>

jsp指令标记

这里主要结束两个常用的两个jsp指令标记,一个是page指令标记,另一个是index标记

page指令

page指令标记用来标记 定义整个jsp页面的属性,和属性的值,主要用于文件的配置

**page 指令标记的一般语法:**

<%@ page 属性名="属性值" %>

一些常用的属性:

import:用于导入 Java 类或包。可以使用逗号分隔多个导入项。

<%@ page import="java.util.List, java.util.ArrayList" %>

contentType:用于设置响应的内容类型和字符编码。

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

language:用于指定在 JSP 页面中使用的脚本语言,默认为 Java。

<%@ page language="java" %>

session:用于启用或禁用会话(session)支持,默认为启用。

<%@ page session="false" %>

errorPage:用于指定在出现错误时跳转到的错误处理页面。

<%@ page errorPage="error.jsp" %>

isErrorPage:用于标识当前页面是否为错误处理页面。

<%@ page isErrorPage="true" %>

buffer:用于设置响应缓冲区的大小。

<%@ page buffer="8kb" %>

实例

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="head.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<br>
	<div>网站首页面</div>
</body>
</html>

language="java":指定在 JSP 页面中使用的脚本语言为 Java

contentType="text/html; charset=UTF-8":设置响应的内容类型为 “text/html”,并指定字符编码为 UTF-8。这确保了生成的 HTML 页面使用 UTF-8 编码进行显示。其中。"text/html" 表示响应的内容类型为 HTML。这告诉浏览器接收到的内容是 HTML 格式的,以便正确地解析和显示页面。

pageEncoding="UTF-8":指定 JSP 页面的编码为 UTF-8。这确保了 JSP 文件本身的编码为 UTF-8。

include指令

include 指令用于在当前 JSP 页面中包含其他的 JSP 页面、HTML 文件或文本文件的内容。通过使用 include 指令,可以将其他文件的内容嵌入到当前页面中,实现代码的重用和模块化

例如,我们实现一个导航栏,可能有好几个页面都需要这个导航栏,如果我们每个文件一个一个的去添加这个代码,一方面麻烦,另一方面会使得代码臃肿,我们使用include命令,在一个jsp文件中,专门写一个导航栏,这样如果一个页面需要导航栏,直接进行引用就行了。

例子:

index.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="head.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<br>
	<div>网站首页面</div>
</body>
</html>

head.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div>
		<ul>
			<li style="float: left;width: 50px"><a>首页</a></li>
			<li style="float: left;width: 50px"><a>体育</a></li>
			<li style="float: left;width: 50px"><a>热点</a></li>
			<li style="float: left;width: 50px"><a>股市</a></li>
			<li style="float: left;width: 50px"><a>经济</a></li>
		</ul>
	</div>
</body>
</html>

这样就能实现下面这样的一个效果实际运用中还是非常不错的,如果先前写过一般的html界面,就能深有体会

在这里插入图片描述

jsp动作标记

在 JSP 中,动作标记(Action Tags)是一种特殊的标记,用于执行特定的操作或功能。这些标记由 JSP 容器(如 Tomcat)在运行时进行解析和处理。以下是几个常用的 JSP 动作标记:

<jsp:include>

用于在当前页面中包含其他页面或文件的内容。与 include 指令类似,但是 <jsp:include> 是在运行时动态地包含内容

使用方式:

<%@include file="文件路径" %>

例子:

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>22mued</title>
</head>
<body>
	静态嵌入1.jsp之前
	<br>
	<%@include file="example3_5_1.jsp" %>
	<br>
	静态嵌入1.jsp之后
</body>
</html>

1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>22mued</title>
</head>
<body>
 	<font color="red" size=4>1.jsp文件的内容</font>
</body>
</html>

这样在访问我们的index.jsp文件时,就会动态的将我们的1.jsp的内容加载在index.jsp页面中。这个功能还是很有用的,能够使得我们能更好的使得代码解耦。

<jsp:forward>

用于将请求转发到其他页面或资源。允许在一个 JSP 页面中处理请求,并将其传递给另一个 JSP 页面或 Servlet 进行进一步处理。

使用方式:

<jsp:forward page="文件路径"/>

例子:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>22mued</title>
</head>
<body>
    <h1>Forward Example</h1>

    <%-- 使用 <jsp:forward> 标签将请求转发到另一个页面 --%>
    <jsp:forward page="1.jsp" />

    <%-- 这行代码不会被执行,因为请求已经被转发到了另一个页面 --%>
    <p>This line will not be displayed.</p>
</body>
</html>

当执行到 <jsp:forward page=“1.jsp” />,这个一段时,这个时候页面将会直接跳转到我们的1.jsp页面。

<jsp:param>

用于在动作标记中传递参数。它通常与 <jsp:include><jsp:forward> ,内置对象request,结合使用,允许将参数传递给被包含或转发的页面。

使用方式

<jsp:param name="paramName1" value="paramValue1" />
//这里有两个值,一个是param的名称,一个是该名称下绑定的值

例子:

<jsp:forward page="123.jsp">
    <jsp:param name="name" value="TOM" />
    <jsp:param name="age" value="25" />
</jsp:forward>

123.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Target Page</title>
</head>
<body>
    <h1>Target Page</h1>

    <%-- 获取传递的参数值 --%>
    <% String name = request.getParameter("name"); %>
    <% String age = request.getParameter("age"); %>

    <%-- 显示参数值 --%>
    <p>name : <%= name %></p>
    <p>age: <%= age %></p>
</body>
</html>

<jsp:useBean>

用于在 JSP 页面中创建和操作 JavaBean 对象。它允许您在 JSP 页面中直接使用 JavaBean 的属性和方法。

用法:

<jsp:useBean id="beanId" class="fullyQualifiedClassName" scope="scope" />

  • id:指定用于引用 JavaBean 对象的唯一标识符。
  • class:指定要实例化的 JavaBean 类的完全限定类名。
  • scope:指定 JavaBean 对象的作用域,可以是 pagerequestsessionapplication。默认为 page

<jsp:setProperty><jsp:getProperty>

用于设置和获取 JavaBean 对象的属性值。它们通常与 <jsp:useBean> 结合使用,用于操作 JavaBean 对象的属性。

<jsp:setProperty>一般调用setter函数,<jsp:getProperty> 调用的是getter函数

所谓setter方法,就是以set开头,后面跟着属性名,用于设置对应属性的值。例如,如果有一个属性名为name,那么对应的setter方法就是setName()。这个方法接受一个参数,即要设置的属性值的类型,然后将其赋给类的属性。

同理getter就是以get开头,一个属性名为name,那么对应的gettter方法就是setName(), 具体的调用需要看property是什么

<jsp:setProperty> 语法

<jsp:setProperty name="beanName" property="propertyName" />

  • name:指定要操作的 JavaBean 对象的名称或ID。
  • property:指定要设置的 JavaBean 对象的属性名称。可以使用通配符 `` 来表示所有属性。

<jsp:getProperty>语法:

<jsp:getProperty name="beanName" property="propertyName" />
  • name:指定要操作的 JavaBean 对象的名称或ID。
  • property:指定要获取的 JavaBean 对象的属性名称。可以使用通配符 `` 来表示所有属性

关于<jsp:useBean><jsp:setProperty><jsp:getProperty>的具体使用

首先,需要准备我们的JavaBean类:该类包含私有属性和对应的setter和getter方法。

public class Triangle {
    private int sideA;
    private int sideB;
    private int sideC;

    public void setSideA(int sideA) {
        this.sideA = sideA;
    }

    public int getSideA() {
        return sideA;
    }

    // 同样定义 sideB 和 sideC 的 setter 和 getter 方法
}

其次,在JSP页面中使用JavaBean:导入JavaBean类,实例化一个JavaBean对象。这样就创建了一个名为triangle1的对象

<jsp:useBean id="triangle1" class="com.example.Triangle" scope="page" />

再使用 <jsp:setProperty> 设置属性值:使用 <jsp:setProperty> 标签将请求参数的值设置到JavaBean对象的属性中。例如,使用*的方式设置所有属性:

<jsp:setProperty name="triangle" property="*" />

或者单独设置某一个属性的值:

<jsp:setProperty name="triangle" property="sideA" value="10" />

最后,使用 <jsp:getProperty> 获取属性值:获取JavaBean对象的属性值并在页面上展示。

Side A: <jsp:getProperty name="triangle" property="sideA" />

这就是使用javabean的完成流程,我们的jsp页面就能成功使用javabean对我们数据进行操作。

jsp内置对象

在Jsp中,它在内部书写九个内置的对象,关于内置对象,就是我们不用直接去new一个对象。而是可以直接调用这个对象,然后使用其实现的函数

requestHttpServletRequest 接口的实例
responseHttpServletResponse 接口的实例
outJspWriter类的实例,用于把结果输出至网页上
sessionHttpSession类的实例
applicationServletContext类的实例,与应用上下文有关
configServletConfig类的实例
pageContextPageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page类似于Java类中的this关键字
ExceptionException类的对象,代表发生错误的JSP页面中对应的异常对象

下面就归纳一下一些常用对象的函数,方便以后直接来查询对应的作用。

request对象

request 对象是 Java Servlet API 中的一个内置对象,它代表了客户端发出的 HTTP 请求。通过该对象,可以获取有关请求的各种信息,例如请求的参数、请求的头部信息、请求的方法等。

getParameter(String name): 通过参数名获取请求中的参数值。

getParameterValues(String name):通过参数名获取请求中的参数值数组。

getMethod():获取请求的方法,例如 GET、POST、PUT 等。

getRequestURL(): 获取请求的 URL。

getRequestURI(): 获取请求的 URI。

getHeader(String name): 通过头部名称获取请求的头部信息。

getHeaders(String name): 通过头部名称获取请求的头部信息列表。

getSession(boolean create): 获取与请求关联的会话对象。

getCookies(): 获取请求中的 Cookie 数组。

getLocale(): 获取请求的语言环境

out对象

out 对象用于将文本或其他数据输出到响应的输出流中,以便将其发送给客户端。

void print(String str): 将指定的字符串输出到响应流中。

void println(String str):将指定的字符串输出到响应流中,并在末尾添加一个换行符。

response对象

response 对象是 Java Servlet API 中的一个内置对象,它代表了服务器对客户端发出的 HTTP 请求的响应。通过 response 对象,我们可以设置响应的状态码、响应的内容类型、响应的头部信息等。

void setStatus(int sc): 设置响应的状态码。

void sendRedirect(String location): 重定向到指定的 URL。

void setContentType(String type): 设置响应的内容类型。

void addHeader(String name, String value): 添加响应的头部信息。

void setHeader(String name, String value): 设置响应的头部信息。

void setContentLength(int len): 设置响应内容的长度。

PrintWriter getWriter(): 获取用于写入响应的 PrintWriter 对象。

ServletOutputStream getOutputStream(): 获取用于写入二进制响应的 ServletOutputStream 对象。

void setCharacterEncoding(String charset): 设置响应的字符编码

参考

JSP 隐式对象 | 菜鸟教程 (runoob.com)

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值