【读书笔记】《Java Web整合开发实践》第3章 JSP

1. JSP:Java Server Pages

2. JSP注释:<%--注释内容--%>

3. page指令(页面指令):定义JSP页面的全局属性。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

常见属性见下表:

属性

定义

language=”ScriptLanguage”

指定JSP Container用什么语言来编译,目前只支持JAVA语言。默认为JAVA

extends=”className”

定义此JSP网页产生的Servlet是继承哪个

import=”importList”

定义此JSP网页要使用哪些Java API

session=”true|false”

决定此页面是否使用session对象。默认为true

buffer=”none|size in kb”

决定输出流(Input stream)是否又缓冲区。默认为8kb

autoFlush=”true|false”

决定输出流的缓冲区慢了后是否需要自动清除,缓冲区慢了后会产生异常错误(Exception).默认为true

isThreadSafe=”true|false”

是否支持线程。默认为true

errorPage=”url”

如果此页发生异常,网页会重新指向一个url

isErrorPage=”true|false”

表示此页面是否为错误处理页面。默认为false

contentType=”text/html;charset=gb2312”

表示MIME类型和JSP的编码方式。笔者使用例左

pageEncoding=”ISO-8859-1”

编码方式。(笔者已经加入使用的编码)

isELLgnored=”true|false”

表示是否在此JSP页面中EL表达式。true则忽略,反之false则支持。默认为false

4. include文件加载指令,用于在JSP文件中插入一个包含文本或代码的文件。它把文件插入后与原来的JSP文件合并成一个新的JSP页面。被插入的文件可以是一个文本文件,一个HTML文件或一个JSP文件。插入文件的路径,一般不用"/"开头,而使用相对路径。

<%@include file = "被包含文件的地址"%>

例如:

<%@ include file="a.txt"%>
<%@ include file="a.html"%>
<%@ include file="a.jsp"%>

5. taglib标签指令,引入标签库并设置标签库前缀。

<%@ taglib uri="tagLibraryURI" prefix="tagPrefix"%>

6. JSP脚本元素:通过JSP脚本元素可以将Java代码嵌入到JTML页面中。所有可执行的Java代码,都可以通过JSP脚本来执行。JSP脚本主要包含:声明语句,表达式,Scriptlets。

(1)JSP声明语句用于声明变量和方法,该变量或方法在整个JSP页面中都有效。

<%! java变量的声明语句%>

例如:

 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 2     pageEncoding="ISO-8859-1"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 7 <title>WebProject</title>
 8 </head>
 9 <%!
10     public int a;
11     public String printStr(){
12         return "JSP method";
13     }
14 %>
15 <body>
16     <%
17         out.println(printStr());
18     %>
19 </body>
20 </html>

(2)JSP表达式,插入一个表达式,必须能够求值,并且计算结果会以字符串形式发送到客户端显示出来。

<%= 表达式 %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>WebProject</title>
</head>
<%!
    String str = "JSP expression";
%>
<body>
    <!-- JSP expression -->
    <%=
        str
    %>
</body>
</html>

(3)JSP Scriptlet是一段Java代码段。在JSP Scriptlet中声明的变量是JSP页面的局部变量,调用JSP Scriptlet时,会为局部变量分配内存空间,调用结束后,释放局部变量占有的内存空间。

<% Java代码 %>

7.<JSP:include>JSP动作元素:当JSP页面运行时才会载入该文件,并不是简单地将被包含文件与JSP页面合并成一个新的JSP页面。

<jsp:include page="relative URL"  flush="true|false"/>

page属性:指定被包含文件的url地址,是一个相对路径。

flush属性:指定当缓冲区满时,是否将其清空,默认值是false。

<body>
    <jsp:include page="hello.txt"></jsp:include>
    <jsp:include page="hello.jsp"></jsp:include>
</body>

 8. <jsp:forward>页面重定向动作元素:停止当前JSP页面的执行,将客户端请求转交给另一个JSP页面。

<jsp:forward page="转向页面的URL地址"/>
1 <body>
2     <%
3          System.out.println("跳转前");
4     %>
5     <jsp:forward page="forward.jsp"></jsp:forward>
6     <%
7           System.out.println("跳转后");
8     %>
9 </body>

上述代码中第7行就不会执行了,因为此时页面已经跳转到了forward.jsp。

9. <jsp:param>提供参数的附属动作元素:通常和<jsp:include>,<jsp:forward>和<jsp:plugin>一起使用来传递参数。

<jsp:param name="参数名字" value="指定给param的参数值">

在index.jsp中有如下代码:

<%@ page contentType="text/html; charset=GB2312" %>
<html>
<body>
    <!-- JSP forward -->
    <jsp:forward page="forward.jsp">
        <jsp:param name="username" value="jack"/>
        <jsp:param name="age" value="27"/>
    </jsp:forward>
</body>
</html>

在跳转的页面forward.jsp中有如下代码:

1 <%@ page contentType="text/html; charset=GB2312" %>
2 <html>
3 <body>
4     <P>USE INFORMATION IS AS FOLLOWS:
5     <br>
6         <%="User name is "+request.getParameter("username")%> 
7         <%="User age is "+request.getParameter("age")%>
8 </body>
9 </html>

可以看到username和age就从index.jsp页面传到了forward.jsp页面了。

10.JSP内置对象

(1)request对象:获取客户端信息,包含的主要方法如下:

一下的例子显示form表单和reaquest结合用法:

index.jsp

 1 <%@ page contentType="text/html; charset=GB2312" %>
 2 <html>
 3 <head>
 4     <title>表单页</title>
 5 </head>
 6 <body>
 7     <form action="forward.jsp" method="post">
 8         <p>用户名<input type="text" name="username"/></p>
 9         <br>
10         <p>年龄<input type="text" name="age"/></p>
11         
12         <input type="submit" value="提交"/>
13     </form>
14 </body>
15 </html>

forward.jsp

 1 <%@ page contentType="text/html; charset=GB2312" %>
 2 <html>
 3 <head>
 4     <title>receptive page</title>
 5 </head>
 6 <body>    
 7         <%request.setCharacterEncoding("gb2312"); %>
 8         User name is:<%=request.getParameter("username")%>
 9         Age is:<%=request.getParameter("age") %>
10 </body>
11 </html>

其中第7行是为了防止中文乱码的。

这样forward.jsp就可以从index.jsp页面获取到用户的姓名和年龄了。

如果不知道跳转前的页面有多少个参数,叫什么名字,则可以用 Enumeration params = request.getParameterNames(); 获得所有的参数,再用循环的方法遍历。

(2)response对象

void sendRedict(String url):重定向JSP文件。

与<jsp:forward>动作元素的最大区别在于<jsp:forward>只能在本网站内跳转,而response.sendRedict则可以跳转到任何一个地址的页面。

(3)out对象:向客户端返回信息。

11.JavaBean

JavaBean是用Java语言描述的软件组建模型,是一种特殊的Java类,具有一下几个语法特征:

(1)JavaBean是一个public类

(2)应该包含一个无参的构造方法

(3)JavaBean中属性的获取和设置需要使用标准格式定义的getXxx()方法和setXxx()方法。对于boolean类型的成员变量,可以使用isXxx()来代替。

在JSP中调用JavaBean有3个标准的动作指令:<jsp:useBean>,<jsp:setProperty>,<jsp:getProperty>

JavaBean实现用户登录的DEMO如下:

JavaBean类对应的User.java文件

 1 package javabean;
 2 public class User {
 3     private String username;
 4     private String password;
 5     
 6     public void setUsername(String username){
 7         this.username = username;
 8     }
 9     public String getUsername(){
10         return username;
11     }
12     public void setPassword(String password){
13         this.password = password;
14     }
15     public String getPassword(){
16         return password;
17     }
18     
19 }

index.jsp

 1 <%@ page contentType="text/html; charset=GB2312" %>
 2 <html>
 3 <head>
 4     <title>表单页</title>
 5 </head>
 6 <body>
 7     <form action="forward.jsp" method="post">
 8         <p>用户名<input type="text" name="username"/></p>
 9         <br>
10         <p>密码<input type="password" name="password"/></p>
11         
12         <input type="submit" value="提交"/>
13     </form>
14 </body>
15 </html>

forward.jsp

 1 <%@ page contentType="text/html; charset=GB2312" %>
 2 <html>
 3 <head>
 4     <title>User Information</title>
 5 </head>
 6 <body>    
 7         <jsp:useBean id="userbean" scope="page" class="javabean.User"/>
 8         
 9         <!-- pass username from request object to username in JavaBean userbean -->
10         <jsp:setProperty property="username" name="userbean" param="username"/>
11         <jsp:setProperty property="password" name="userbean" param="password"/>
12         
13         <!-- get username from userbean -->
14         Username
15         <jsp:getProperty property="username" name="userbean"/><br>
16         Password
17         <jsp:getProperty property="password" name="userbean"/>
18         
19 </body>
20 </html>

注意User.java这个类文件一定不能放在默认的包里面,要新建一个包把它放进去。

 

转载于:https://www.cnblogs.com/sunshineatnoon/p/4073224.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字乡村和智慧农业的数字化转型是当前农业发展的新趋势,旨在通过应用数字技术,实现农业全流程的再造和全生命周期的管理服务。中国政府高度重视这一领域的发展,提出“数字中国”和“乡村振兴”战略,以提升国家治理能力,推动城乡融合发展。 数字乡村的建设面临乡村治理、基础设施、产业链条和公共服务等方面的问题,需要分阶段实施《数字乡村发展战略纲要》来解决。农业数字化转型的需求包括满足市民对优质农产品的需求、解决产销对接问题、形成优质优价机制、提高农业劳动力素质、打破信息孤岛、提高农业政策服务的精准度和有效性,以及解决农业融资难的问题。 数字乡村建设的关键在于构建“1+3+4+1”工程,即以新技术、新要素、新商业、新农民、新文化、新农村为核心,推进数据融合,强化农业大数据的汇集功能。数字农业大数据解决方案以农业数字底图和数据资源为基础,通过可视化监管,实现区域农业的全面数字化管理。 数字农业大数据架构基于大数据、区块链、GIS和物联网技术,构建农业大数据中心、农业物联网平台和农村综合服务指挥决策平台三大基础平台。农业大数据中心汇聚各类涉农信息资源和业务数据,支持大数据应用。信息采集系统覆盖市、县、乡、村多级,形成高效的农业大数据信息采集体系。 农业物联网平台包括环境监测系统、视频监控系统、预警预报系统和智能控制系统,通过收集和监测数据,实现对农业环境和生产过程的智能化管理。综合服务指挥决策平台利用数据分析和GIS技术,为农业决策提供支持。 数字乡村建设包括三大服务平台:治理服务平台、民生服务平台和产业服务平台。治理服务平台通过大数据和AI技术,实现乡村治理的数字化;民生服务平台利用互联网技术,提供各类民生服务;产业服务平台融合政企关系,支持农业产业发展。 数字乡村的应用场景广泛,包括农业生产过程、农产品流通、农业管理和农村社会服务。农业生产管理系统利用AIoT技术,实现农业生产的标准化和智能化。农产品智慧流通管理系统和溯源管理系统提高流通效率和产品追溯能力。智慧农业管理通过互联网+农业,提升农业管理的科学性和效率。农村社会服务则通过数字化手段,提高农村地区的公共服务水平。 总体而言,数字乡村和智慧农业的建设,不仅能够提升农业生产效率和管理水平,还能够促进农村地区的社会经济发展,实现城乡融合发展,是推动中国农业现代化的重要途径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值