12.29jsp学习日记-----jsp基本语法

目录

1.jsp页面基本结构

2.声明变量和定义方法

ex1-----简单计数器(利用成员变量被所有用户共享这一性质)

3.定义方法和定义类

ex2:调用方法和类进行简单计算

4.java程序片<%  %>

5.java表达式<%=   %>

6.JSP中的注释

7.JSP指令标记

8.jsp动作标记(影响jsp运行时的功能)

ex3:消费总和


1.jsp页面基本结构

        a.普通的HTML标记和JavaScript标记

        b.JSP标记,如指令标记,动作标记

        c.变量和方法的声明

        d.Java程序片

        e.Java表达式

2.声明变量和定义方法

        a.在<%!    %>标记之间声明变量和定义方法

        b.符号标记的内容习惯放在JSP页面指令之后,<HTML>之前

        c.<%!    %>标记符之间声明的变量作为类的成员变量

        d.<%!    %>之间声明的变量在整个jsp页面内都有效

        e.这些变量占有的内存空间直到Tomcat服务器关闭才释放

ex1-----简单计数器(利用成员变量被所有用户共享这一性质)

<%@ page contentType = "text/html" %>
<%@ page pageEncoding= "utf-8" %>
<html>
<body bgcolor =yellow>
<%! 
int i =0;
%>
<%
i++;
%>
<p style="font-family:宋体;font-size:36">您是第<%= i %>个访问本站的用户。</p>
</body>
</html>

            

             

                                                                       图1 运行结果

 原理:当多个用户请求一个jsp页面时,Tomcat服务器为每个用户启动一个线程,这些线程由Tomcat服务器来管理,这些线程共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。

3.定义方法和定义类

ex2:调用方法和类进行简单计算

<%@ page contentType = "text/html" %>
<%@ page pageEncoding= "utf-8" %>
<html>
<body bgcolor =#ffccff>
<p style-"font-family:宋体;font-size:36;color:blue">
<%! 
	double multi(double x,double y){//定义方法
		return x*y;
}
	double div(double x,double y){//定义方法
	return x/y;
}
	class Circle{double r;//定义类
			double getArea(){
				return 3.1415926*r*r;
}
}
%>
<%
	double x=8.97;
	double y=20.8;
	out.print("调用multi方法计算"+x+"与"+y+"的乘积:<br>");
	out.print(multi(x,y));
	out.print("<br>调用div方法计算"+y+"除以"+x+"的商:<br>");
	String s = String.format("小数点保留三位:%10.3f",div(y,x));
	out.println(s);
	Circle circle=new Circle();
	circle.r=3.6;
	out.print("<br>半径是"+circle.r+"的园面积:"+circle.getArea());
%>
</p>
</body>
</html>

                                                                    图2 运行结果

4.java程序片<%  %>

5.java表达式<%=   %>

        可在其之间插入一个可以求值的表达式,不可插入语句。

6.JSP中的注释

HTML注释<!--  -->

JSP注释<%--    --%>

两个注释区别:HTML的注释可以在浏览器中查看页面源码看到,而JSP的注释是看不到的,因为JSP的注释不会被发送到客户端。

7.JSP指令标记

        a.page指令标记(定义整个jsp页面的一些属性和这些属性的值)
                语法:

一个属性一个值

<%@ page 属性1="属性1的值"%>
<%@ page 属性2="属性2的值"%>.......

一个属性多个值

<%@ page 属性1="属性1的值" 属性2="属性2的值".....%>

         属性:contentType确定JSP页面响应的MIME类型(不允许使用2次)

                    pageEncoding定义页面使用的编码

                     language定义用户使用的语言(该属性值目前只能取java)

                     import为JSP页面引入Java运行环境提供的包中的类

                      sessio用与设置是否要使用内置的session对象

                     buffer用来指定out设置的缓冲区的大小,或者不设置缓冲区

                     outFlush指定out的缓冲区被填满时,缓冲区是否自动刷新

                    isThreadSafe设置访问的JSP页面是否线程安全

                    info为JSP页面准备一个常用但可能要经常修改的字符串

b.include指令标记(在JSP页面内整体嵌入一个文件)

<%@ include file="文件的url"%>

8.jsp动作标记(影响jsp运行时的功能)

        include动作标记

                语法:

无param子标记

<jsp: include page="文件的url">

有子标记

<isp:include page="文件的url">
    param子标记
</jsp:include>

        forward动作标记

无param子标记

<jsp:forward page="要转向的页面">

有子标记

<jsp:forward page="要转向的子标记">
param 子标记
</jsp fowrward>

        useBean动作标记

ex3:消费总和

<%@ page contentType = "text/html" %>
<%@ page pageEncoding= "utf-8" %>
<%@ page import="java.util.regex.Pattern"%>
<%@ page import="java.util.regex.Matcher"%>

<%! 
public double getPriceSum(String input){
	Pattern pattern;//模式对象
	Matcher matcher;//匹配对象
	String regex="-?[0-9][0-9]*[.]?[0-9]*";//匹配数字的正则表达式
	pattern=Pattern.compile(regex);//初始化模式对象
	matcher=pattern.matcher(input);//初始化匹配对象,用于检索input
	double sum=0;
	while(matcher.find()){
		String str=matcher.group();
		sum +=Double.parseDouble(str);
}
return sum;
}
%>
<html>
<body bgcolor =cyan>
<p style="font-family:黑体;font-size:20">
<br>张三的菜单</br>
<% String str="麻婆豆腐:20.6元,红烧肉:68.9元";
%>
<br><%= str %></br>
<br><b><i>消费总和<%= getPriceSum(str)%></i></b></br>
<br>李四的菜单</br>
<%  str="剁椒鱼头:62.9元,烤鸭:19.9元,红焖大虾:289.9元";
%>
<br><%= str %></br>
<br><b><i>消费总和<%= getPriceSum(str)%></i></b></br>
</p>
</body>
</html>

                                                               图3 运行结果 

9.心得体会

        今天学习了jsp的基本语法,几个代码打下来,对jsp页面的基本构成有了初步了解,但是在最后一个代码中出现的pattern,和matcher第一次使用很陌生,要查阅相关资料拿下他们。我相信每天坚持,再小的努力乘以365都可以很明显,坚持下来!不过过几天可能会跟着学校做实训项目,Java加数据库,jsp的学习会先放放,但是来csdn打卡整理是不会落下的,期待遇见更好的自己!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值