第四周:java jsp

第四周:java jsp,第1张

一、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 + "

"); out.print("初始化参数为:" + url + "

"); %> </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的区别

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/719623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存