第四周:java jsp

一、JSP简介

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。
JSP 这门技术最大的特点在于,写 JSP就像在写 html ,但:它相比 html 而言,html 只能为用户提供静态数据,而 JSP 技术允许在页面中嵌套 java 代码,为用户提供动态数据。
jsp=html+css+javascript+java代码+jsp标签(servlet)

二、JSP处理

在这里插入图片描述

三、JSP脚本

脚本可以编写java语句、变量、方法和表达式。

3.1普通脚本

普通脚本可以使用所有java语句,除了定义方法。

<% Java语句 %>

例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    out.println("hello!");
%>
</body>
</html>

脚本与脚本、脚本与HTML标签不可嵌套使用!!!

3.2声明脚本

声明脚本用于声明一个或多个变量、方法,以供后面的 Java 代码使用。

<%! 声明语句 %>

例:

<%! int a=10;%>
<%! Object object=new Object();%>
<%! public void f(){
    System.out.println("hello!");
}
%>

3.3输出脚本

<%= 表达式 %>

可以将 <%=表达式 %> 理解为 <% out.println(表达式) %> 的简写方式。
例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%= new java.util.Date()%>
</body>
</html>

在这里插入图片描述

四、JSP注释

4.1HTML注释

通过浏览器查看网页源代码可以看到注释内容。

<!-- 注释内容 -->

4.2JSP注释

注释内容不会被发送至浏览器甚至不会被编译。

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

五、JSP指令

5.1Page指令

定义网页依赖属性,比如脚本语言、error页面、缓存需求等等。
语法格式:

<%@ page attribute="value" %>

属性:
在这里插入图片描述

5.2Include指令

JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。
基本语法:

<%@ include file="文件相对 url 地址" %>

如果没有给文件关联一个路径,JSP编译器默认在当前路径下寻找。

5.3Taglib指令

Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。
基本语法:

<%@ taglib uri="uri" prefix="prefixOfTag" %>

uri属性确定标签库的位置,prefix属性指定标签库的前缀。

六、JSP动作元素

在这里插入图片描述

6.1 jsp:include动作元素

语法格式:

<jsp:include page="相对 URL 地址" flush="true" />
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<p>
    今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>

<h2>include 动作实例</h2>
<jsp:include page="date.jsp" flush="true" />

</body>
</html>

在这里插入图片描述

6.2 jsp:useBean动作元素

基础语法:

<jsp:useBean id="name" class="package.class" />

在这里插入图片描述

6.3 jsp:setProperty动作元素

基础语法:

<jsp:useBean id="myName" ... />
...
<jsp:setProperty name="myName" property="someProperty" .../>

<jsp:useBean id="myName" ... >
...
   <jsp:setProperty name="myName" property="someProperty" .../>
</jsp:useBean>

属性:
在这里插入图片描述

6.4 jsp:getProperty动作元素

基本语法:

<jsp:useBean id="myName" ... />
...
<jsp:getProperty name="myName" property="someProperty" .../>

属性:
在这里插入图片描述

七、JSP隐式对象

在这里插入图片描述

request

request 对象是 HttpServletRequest(接口)的实例。请求信息的内容包括请求的标题头(Header)信息(如浏览器的版本信息语言和编码方式等),请求的方式(如 HTTP 的 GET 方法、POST 方法等),请求的参数名称、参数值和客户端的主机名称等。
在这里插入图片描述

<%@ page contentType="text/html;charset=utf-8" %>
<html>
<head>
    <title>
        request对象获取客户信息
    </title>
</head>
<body>
客户提交信息的方式:<%=request.getMethod() %> <br/>
使用的协议:<%=request.getProtocol() %> <br/>
获取提交数据的客户端IP地址:<%=request.getRemoteAddr() %> <br/>
获取服务器端的名称:<%=request.getServerName() %> <br/>
获取服务器端口号:<%=request.getServerPort() %> <br/>
获取客户端的机器名称:<%=request.getRemoteHost() %> <br/>
</body>
</html>

在这里插入图片描述

response

response 对象和 request 对象相对应,用于响应客户请求,向客户端输出信息。response 是 HttpServletResponse 的实例,封装了 JSP 产生的响应客户端请求的有关信息,如回应的 Header,回应本体(HTML 的内容)以及服务器端的状态码等信息,提供给客户端。请求的信 息可以是各种数据类型的,甚至是文件。
在这里插入图片描述

<%@ page contentType="text/html;charset=utf-8" %>
<html>
<head>
    <title>
        response 对象动态设置响应类型
    </title>
</head>
<body>
<h2> response 对象动态设置响应类型 </h2>
<p>请选择将当前页面保存的类型
<form action=" " method="post" name=frm>
    <input type="submit" value="保存为word" name="submit1">
    <input type="submit" value="保存为Excel" name="submit2">
</form>
<%
    if(request.getParameter("submit1")!=null)
        response.setContentType("application/msword;charset=GB2312");
    if(request.getParameter("submit2")!=null)
        response.setContentType("application/x-msexcel;charset=GB2312");
%>
</body>
</html>

在这里插入图片描述

out

out 对象是一个输出流,用来向客户端输出数据,可以是各种数据类型的内容,同时,它还可以管理应用服务器上的输出缓冲区。
在这里插入图片描述

session

用来访问用户数据,记录客户的连接信息。
在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<h2>用户登录</h2>
<form action="index.jsp">
    用户名: <input type="text" name="username" /> <br> <br>
    密码: <input type="text" name="pass" /> <br> <br>
    <input type="submit" value="登录" />
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<%
    String username = request.getParameter("username");
    out.print("欢迎" + username + "登录");
    session.setAttribute("sessname", username);
%>
<a href="success.jsp">跳转成功页面</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<%
    String name = (String) session.getAttribute("sessname");
    out.print("您好,您的用户名为:" + name);
%>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

application

在这里插入图片描述

<%@ page contentType="text/html;charset=utf-8"%>
<html>
<head>
    <title>application网页计数器</title>
    <head>
<body>
<%
    int n=0;
    if(application.getAttribute("num")==null)
        n=1;
    else
    {
        String str=application.getAttribute("num").toString();
        //getAttribute("num")返回的是Object类型
        n=Integer.valueOf(str).intValue()+1;
    }
    application.setAttribute("num",n);
    out.println("您好,您是第"+application.getAttribute("num")+"位访问客户!");
%>
</body>
</html>

在这里插入图片描述

config

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<%
    String sname = config.getServletName();
    String url = config.getInitParameter("url");
    out.print("Servlet名称为:" + sname + "<br>");
    out.print("初始化参数为:" + url + "<br>");
%>
</body>
</html>

在这里插入图片描述

pageContext

在这里插入图片描述

page

在这里插入图片描述

exception

在这里插入图片描述

八、cookie

Cookie 由服务器生成并发送给浏览器(客户端),浏览器会将其以文本文件的形式存储在某个目录下。

常用方法

在这里插入图片描述

创建)

cookie cookie = new cookie(String name,String value);

ame 代表 cookie 的名称,value 表示该名称对应的值

写入)

response.addcookie(cookie);

设置)

cookie.setMaxAge(60*60*24); 

读取)

调用 request.getCookies() 方法读取 cookie,该方法返回 HTTP 请求中的 cookie 对象数组,需要通过遍历进行访问。

删除)

获取 cookie
将要删除的 cookie 有效期设置为 0
调用 response.addCookie() 方法重新写入 cookie

session和cookie的区别

在这里插入图片描述

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值