jsp语法基础

1  jsp介绍

jsp是一种开发网页的技术,它基于html和java,需要借助于服务器运行。

jsp网页和html网页的区别和联系简单说就是:可以在jsp里面写java代码,而html不可以;jsp需要html,html不需要jsp。

 

2  jsp构成

jsp网页由3大基础构成:

  1. jsp标签或标记
  2. html/css
  3. java

2.1  jsp标签

  • jsp标签用于定义设置jsp网页的功能或特性,常用标签有8个,如下:
  • 3个指令标签:page、include、taglib
  • 5个动作标签:jsp:include、jsp:param、jsp:forward、jsp:plugin、jsp:useBean

 

jsp指令标签的语法格式:

<%@ 标签名  属性名1=“属性值1” 属性名2=“属性值2” ......%>

如:

<%@  page language="java"  contentType="text/html; charset=utf-8"  pageEncoding="utf-8" %>

 

jsp动作标签的语法格式:

<标签名  属性名1=“属性值1” 属性名2=“属性值2” ....../>

或者

<标签名  属性名1=“属性值1” 属性名2=“属性值2” ......>

相关内容

</标签名>

如:

<jsp:forward page="xxx.html"> </jsp:forward>

2.2  html/css

jsp需要html/css技术为其页面排版、设计风格、设计样式,

3.java    

 

  •     用于功能逻辑实现
  •     定义数据放在<%!    %>里;
  •     写代码放在<%    %>里;
  •     写变量值放在<%=     %>里;
  • 注释说明
  •     jsp代码用:<%--        --%>                     这种注释的代码,在查看源码时不会显示。
  •     html代码用:<!--      -->
  •     css代码用:/*       */
  •     java代码用://或者/*       */

 

4.jsp指令标签

jsp的指令标签主要有3个:page、include、taglib

4.1page

语法格式:

<%@ page  属性1=“值1” 属性2=“值2” ......%>

page指令标签是对整个jsp文件的设置,约有15个属性,一般在整个文件的前面引用,属性不能重复设置。

​​​​​​​4.2include

  • include指令标签用于静态方式引入本项目里的其他文件到本jsp页面里,如引入项目里的一个html、jsp、txt文件到本页面。
  • 需要注意的是,为了防止乱码被引入的文件开头需用添加page指令标签设置编码格式,
  • <%@ page  pageEncoding="utf-8"%>或<%@ page  pageEncoding="gbk"%>等
  • 因为是静态引用,在编译阶段执行,所以定义的数据不能和本jsp文件冲突。
  • 如果在引用有些标签和本jsp文件的效果有冲突,会被引用的文件标签格式去掉。

4.3​​​​​​​ taglib

用于引用自定义jsp标签

 

5.jsp动作标签

jsp的主要动作标签有5个:jsp:include、jsp:param、jsp:forward、jsp:plugin、jsp:useBean

jsp动作标签的语法格式:

<标签名  属性名1=“属性值1” 属性名2=“属性值2” ....../>

或者

<标签名  属性名1=“属性值1” 属性名2=“属性值2” ......>

相关内容

</标签名>

5.1​​​​​​​ jsp:include

jsp:include动作标签和include的指令标签一样都是用来引用本项目里的其他文件到jsp文件中,有2个属性:page和flush

格式:<jsp:include page="要打开的文件路径"></jsp:include>

        和include指令标签对比:
            include是静态方式引用(编译时),jsp:include是动态方式执行(运行时);

<jsp:include page="test.jsp"></jsp:include>

5.2 ​​​​​​​ jsp:include动作标签与include指令标签异同

相同地方:

作用一样,都是在jsp文件里用于引用另一个本项目中的文件或封装好的jsp文件;

不同地方:

  1. include是静态方式引用,jsp:include是动态方式执行;
  2. include 是用file属性来设置要引用的文件路径,jsp:include是用page属性来设置要引用的文件路径。
  3. jsp:include 引用html和txt等非jsp文件时容易乱码。
  4. jsp:include 多了个一flush属性,用于缓冲数据,有2个值:true和false,true表示设置缓冲,fasle表示不设置缓冲,当jsp页面的数据很多时最好设置缓冲,如下
<jsp:include page="test.jsp" flush="true"></jsp:include>

 

​​​​​​​5.3 jsp:forward

jsp:forward标签用于jsp页面跳转,只有一个属性:page,跳转后浏览器地址不会变化。格式

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

<jsp:forward page="test.jsp"><jsp/jsp:forward>

 

​​​​​​​5.4 jsp:param

jsp:param 标签不单独使用,作为其他标签的子标签使用,用于传递参数。

与jsp:include标签结合使用

格式:
            <jsp:forward page="jsp/a.jsp">
                <jsp:param value="放假了!!!" name="xxx"/>
            </jsp:forward>
    
        接收:
            <%
                String x=request.getParameter("xxx");     //获取传来的数据
            %>

 

6.jsp内置对像

 

6.1 out

作用

用于将信息或数据发送给网页或web,以及相应设置

常用方法

  • out.getBufferSize() 获取缓存区大小
  • out.getRemaining() 获取缓存区剩余大小
  • out.print() 输出数据,比如网页上。没有空格
  • out.println(); 输出数据,比如网页上。尾部有空格
  • out.write() 输出数据,比如网页上。没有空格
  • out.flush() 输出数据并清空缓存

原理

out对象默认会先把数据发送给缓冲区,再发送给输出端。默认缓冲区大小为8192个字节,缓冲区大小可以设置,比如通过page指令标签里的【buffer=””】来设置。

 

6.2page

作用

获得和处理当前jsp类,是this的另一种用法。

常用方法

page.getClass(); 获取当前jsp页面类

<%=page.getClass()%>

​​​​​​​6.3request

作用

  • 用于保存和处理一次性的即时数据,比如页面跳转时两个页面间传递数据,
  • 只对目标路径有效。提交方式:get方式和post方式,get方式是公开的,
  • 传递的数据浏览器地址会看到,post方式是保密的,
  • 传递的数据浏览器地址看不到,默认是get方式。
  • 处理中文乱码(高版本8.0以上服务器不需要)
       byte[] b=str1.getBytes("iso-8859-1");   //转换成编码格式iso-8859-1(低版本tomact默认的编码格式)
       String str2=new String(b,"utf-8");        //把字节数组转换成和网页一样的编码格式

常用方法

  • request.setCharacterEncoding()          设置编码格式
  • request.setAttribute()        保存对象数据或保存属性
  • request.getAttribute()               读取对象数据或读取属性
  • request.removeAttribute() 删除保存的属性
  • request.getAttributeNames() 读取所有属性名
  • request.getParameter()               读取传递的String类型数据
  • request.getParameterNames() 读取一组已设置的参数名
  • request.getParameterValues() 读取一组已设置的参数值
  • request.getInputStream() 调用输入流
  • request.getCookies() 获得Cookies
  • request.getSession() 获得Session
  • request.getRemoteHost() 获取客户端地址
  • request.getRemotePort() 获取客户端端口
  • request.getServerName()             获取服务端地址
  • request.getServerPort() 获取服务端端口

  1.  保存对象数据或保存属性

读取对象数据或读取属性

2.request.getAttributeNames() 读取一组属性名

(3)request.getParameter()               读取数据

(4)request.getParameterNames() 读取一组参数名

(5)request.getParameterValues() 读取一组参数值

(6)

  • request 保存和传递数据只对目标路径有效,如果没有设置,表示有效范围为当前路径或当前页面,
  • jsp:forward标签的跳转方式是属于当前路径,form标签和a标签的跳转方式是属于指定路径。

6.4 response

作用

用于动态响应网页或web的请求,比如发数据给网页,并获得响应结果。

常用方法

  • esponse.setHeader("refresh", "1");  每1秒自动刷新一次网页
  • response.setHeader("refresh", "3;url=http://www.baidu.com");  3秒后跳转到百度页面
  • sendRedirect("out.jsp");                    //页面跳转(重定向方式)
  • response.setContentType();  设置网页类型
  • response.setBufferSize();      设置缓存区大小
  • response.getBufferSize()  获取缓存区大小
  • response.getOutputStream()  调用输出流
  • response.addCookie();  添加Cookie
  • setContentType("application/msword;charset=utf-8"); //把当前网页保存为word文档

6.5 session

作用

用于保存和处理用户的信息或数据。

原理

  • 一个用户(session)是指一个客户端(一个浏览器)从打开到关闭的整个阶段。
  • 一个用户对应一个session对象。当一个浏览器访问服务器的时候,
  • 服务器会为每个浏览器生成一个专门的编号(ID)
  • ,并为其保存一定时长,Tomcat保存的默认时长为30分钟。

常用方法

  • session.getId() 获取用户编号(ID)
  • session.isNew() 判断是不是新用户,值为true表示新用户,为false标识旧用户。
  • session.setAttribute() 保存数据或保存属性
  • session.getAttribute() 获取数据或获取属性
  • session.removeAttribute() 删除属性
  • session.getLastAccessedTime()       获取用户上次访问时间,单位是毫秒。
  • session.getMaxInactiveInterval()      获取用户有效时长,单位是秒。
  • session.setMaxInactiveInterval() 设置用户有效时长,单位是秒。如果值是负数表示无限长。

session保存的数据存在于同一个用户,也就是同一个客户端,也就是同一个浏览器,不能跨用户访问。

 

常用方法:
        setAttribute("xxx", "12345");            //设置数据
        getAttribute("xxx");                        //读取数据
        isNew();                           //判断当前是不是新用户,true表示新用户,false表示旧用户。
        getId();                     //获得session对象编号
        getLastAccessedTime();                //获得用户最近访问时间
        getMaxInactiveInterval();            //获得用户有效时间(秒)
        setMaxInactiveInterval(5);            //设置用户有效时间(负数表示无限长)
        invalidate();                                  //注销用户
        removeAttribute("xxx");            //删掉属性

 

6.6application

作用

用于保存和处理整个项目的信息或数据。

原理

application以项目全局变量形式保存数据,每个客户端(浏览器)共用同一个变量。

常用方法

  • application.setAttribute() 保存数据或属性
  • application.getAttribute() 读取数据或属性
  • application.removeAttribute() 删除属性

常用方法:
        setAttribute("xxx", "12345");        //设置数据
        getAttribute("xxx");                     //读取数据
        removeAttribute("name");          //删掉属性

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值