栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSP初步

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP初步

JSP初步

文章目录
  • JSP初步
  • 一、JSP简介
  • 二、JSP指令
      • page指令
      • include指令与taglib指令
  • 2、JSP注释
  • 3、JSP常用脚本
  • 4、JSP内置对象
      • out对象
      • request对象
      • response对象
      • session对象
      • application对象
      • 其他对象
  • 5、JSP动作


一、JSP简介

 JSP,即Java Server Pages,Java 服务器端页面,一个特殊页面,其中既可以指定定义html标签,又可以定义Java代码.其根本是一个简化的Servlet设计。
 JSP的页面元素由指令、表达式、小脚本、声明、注释、静态内容六部分构成。


二、JSP指令 page指令

 page指令通常位于jsp页面的顶端,同一个页面可以有多个page指令。
 page指令的语法为:

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

page中的常用属性分别为:

属性描述
language用于指定JSP页面使用的脚本语言,默认为Java
import用于引用脚本语言中使用到的类文件
contentType用于指定JSP页面所使用的编码方式
pageEncoding用于指定JSP页面所使用的字符集
errorPage用于设置当JSP页面运行出现异常时自动跳转到的页面的路径
isErrorPage用于设置当前JSP页面是否是错误信息页面,默认值为false
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.io.*" %>

这是一个常见的page指令,使用Java语言,text/html;charset=UTF-8编码方式并导入了java.io类
include指令与taglib指令

 此外,JSP中还有include指令与taglib指令,其中include指令用于将一个外部文件嵌入到当前jsp文件中,同时解析这个页面中的jsp语句;
 taglib指令则用于使用标签库定义新的自定义标签,在jsp页面中启用定制行为。


2、JSP注释

HTML注释:

:客户端可见,即可以通过查看页面源代码操作看到

JSP注释:

<%--jsp注释--%>:客户端不可见

jsp脚本注释:
 一般即为Java注释

<%
// 单行注释



%>

3、JSP常用脚本

JSP声明
 用于在jsp页面中定义变量或方法。

<%! 
	Java代码 
%>

JSP表达式
 在jsp页面中执行的表达式

<%= 表达式 %> // 需注意表达式不以分号结束

JSP代码
 用于在jsp页面中编写Java代码

<%
	Java语句
%>

 下面是一段简单的代码演示:

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


    My Test


<%!
    public class Student {
        private String name;

        public void setName(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }

%>
<%
    Student student = new Student();
    student.setName("Tom");
%>
学生的姓名为:<%=student.getName()%>

启动Tomcat服务器后浏览器的运行结果为:


4、JSP内置对象

JSP的内置对象指的是Tomcat服务器将JSP页面翻译为Java类之后内部提供的九大对象:

  • out
  • request
  • response
  • session
  • application
  • page / pageContext / exception / config

 下面将介绍几个常用对象。

out对象

 out对象是JspWriter类的实例,是向客户端输出内容的常用对象。

 out对象的常用方法:

void println();向客户端打印字符串

void clear();清除缓冲区内容,若在flush之后调用会抛出异常

void clearBuffer();清除缓冲区内容

void flush();将缓冲区的内容输出到客户端

int getBufferSize();返回缓冲区的大小,单位为字节,若不设缓冲区则为0

int getRemaining();返回缓冲区剩余多少可用

void close();关闭输出流

request对象

 request对象是HttpServletRequest类的实例,通过它可以了解到客户端的请求信息,然后做出相应。

 request对象的常用方法:

String getParameter(String name);返回name指定参数的参数值

String[] getParameterValues(String name);
返回包含参数name的所有值的数组
void setAttribute(String , Object);存储此请求中的属性

object getAttribute(String name);返回指定属性的属性值

String getprotocol();返回请求用的协议类型及版本号

String getServerName();返回接受请求的服务器主机名

void setCharacterEncoding();设置请求的字符编码方式

String getCharacterEncoding();返回字符编码方式

String request.getContextPath();返回上下文路径

response对象

 response对象是HttpServletResponse类的实例,response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其他页面的response对象对该页面无效。

 request对象的常用方法:

String getCharacterEncoding();返回响应用的字符编码方式

PrintWriter getWriter();返回可以向客户端输出字符的一个对象

sendRedirect(java.lang.String location);重新定向客户端的请求

getRequestDispatcher().forward(req, resp);重新转发客户端请求

 response.getWriter 输出与out输出的区别:


图片引用自:JSP的基本使用总结

 请求重定向与请求转发的区别:
 请求重定向是客户端行为,从本质上讲等于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。
 请求转发是服务器行为,是一次请求,对象会保存,地址栏的URL地址不会改变。


session对象

 session对象是HttpSession类的实例,它在第一个JSP页面被装载时自动创建,完成会话期管理。

 session对象的常用方法:

long getCreationTime();返回session产生的时间

long getMaxInactiveInterval();返回session不活动的最长时间,若超过这时
间session将会失效

void invalidate();取消session对象,其存放的内容将被抛弃

void setMaxInactiveInterval(int interval);
设定session不活动的最长时间,若超过该时间,session将会失效

application对象

 application对象是ServletContext 类的实例。实现了用户间数据的共享,可用于存放全局变量。它开始于服务器启动,终止于服务器关闭。

 session对象的常用方法:

void setAttribute(String , Object);存储此请求中的属性

object getAttribute(String name);返回指定属性的属性值

Enumeration getAttributeNames();返回所有可用属性名的枚举

String getSeverInfo();返回JSP(Servlet)引擎名及版本号

其他对象

 page 对象是java.lang.Object类的实例,指向当前JSP页面本身,类似于类中的this指针。

 pageContext 对象为JSP的上下文对象。

 exception 对象是java.lang.Throwable的实例,是一个异常对象。当一个页面产生异常时就会产生该对象,若要应用此对象需将isErrorPage设为true。

 config 对象里存放着一些Servlet 初始的数据结构。


5、JSP动作

 JSP有6个基本动作,分别为:include、usebean、forward、setProperty、getProperty、plugin


include:在页面被请求时引入一个文件。

  1. include指令:
<@% include file="URL"%>
在一个页面中包含另一个页面

简单测试:

// 先创建一个hw.jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%
    out.println("Hello World!");
%>


// 将hw.jsp文件包含入test.jsp中
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    My Test



文件hw.jsp中的内容为:
<%@ include file="hw.jsp" %>


运行后结果:


  1. include动作:

page 表示要被包含的页面
flush 表示被包含的页面是否从缓冲区读取	

include指令与include动作的区别:


图片引用自:include指令与include动作的区别


 Javabeans就是符合某种特定规范的Java类。使用Javabeans可以解决代码的重复编写,减少代码冗余,明确功能区分,提高了代码的维护性。
usebean:在JSP页面中实例化或在特定范围内使用Javabean


如果找不到class中的类,则将创建一个对象
scope的范围即:page、request、session、application,默认值为page

setProperty:给已实例化的javabean对象设置属性



getProperty:获取指定的javabean对象的属性值



简单的代码演示:
先创建一个Students类

package com.example.jsptest;

public class Students {
    private String name;
    private int age;

    public Students() {
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }
}

再调用上述方法:

<%@ page contentType="text/html;charset=UTF-8" %>


    My Test





Student's name is


Student's age is

运行结果为:


forward:把请求转到一个新的页面


 forward跳转为服务器端跳转,地址栏的URL地址不变。等同于getRequestDispatcher().forward(req, resp) 方法。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号