jsp页面的基本构成:
指令标签
HTML标记语言
注释   <!-- html注释 -->  <%-- java代码注释 -->   //html注释对jsp嵌入的代码不起作用,因此可以组合它们构成动态的html注释
jsp动作标签 <jsp: >


1. 指令标签
指令标签不会产生任何内容输出到网页中,主要用于定义jsp页面相关信息
如使用的语言、导入的类包、指定错误处理页面

1.1 page指令
重要属性:
import属性,设置jsp导入的类包。因为jsp可以嵌入java代码,而这些代码在调用API时需要导入相应的类包
例如: <%@ page import="java.util.*"%>
pageEncoding属性,定义jsp页面编码格式
例如:<%@ page pageEncoding="GB18030"%>
contentType属性,设置jsp页面的MIME类型和字符编码,浏览器会据此显示网页类容
例如:<%@ page contentType="text/html;charset=UTF-8"%>
session属性,指定jsp页面是否使用HTTP的session会话对象
例如:<%@ page session="false"%>
isErrorPage属性,将当前jsp页面设置成错误处理页面来处理另一个jsp页面的错误
例如:<%@ page isErrorPage="true"%>
errorPage属性,指定处理当前jsp页面异常错误的另一个jsp页面,属性值是一个url字符串
例如:<%@ page errorPage="error/loginErrorPage.jsp"%>

1.2 inlcude指令
用于在jsp页面中包含另外一个文件的内容,只支持静态包含,内容将原样包含在jsp页面中,被包含文件中
代码不会执行,可以是一段java代码、html代码或者另外一个jsp,其值是当前jsp页面文件的相对url路径

1.3 taglib指令
用于加载用户自定义标签
prefix属性用来加载自定义标签的前缀
uri属性用于指定自定义标签的描述文件符位置
例如:<%@taglib prefix="view" uri="/tags/view.tld"%>

2. 嵌入java代码

jsp脚本段
语法格式如下:
<%   编写java代码   %>

jsp声明
定义全局变量与全局方法,可以在整个jsp页面使用
格式如下:
<%!  变量或者函数   %>

jsp表达式
jsp表达式可以把可以把java表达式的结果输出到jsp页面中,表达式的最终运算结果被转换为字符串类型
格式如下:
<%= 表达式 %>


3. jsp动作标签
<jsp:include>
该动作标签可以将另外一个文件包含到当前的jsp页面中,可以使静态文本也可以是动态代码
page属性用来指定被包含文件的相对路径
flush属性用来指定是否刷新缓冲区
注意,被包含的jsp文件中不要使用<html>和<body>标签,源文件和被包含文件中变量名和方法不要冲突
例如:
<jsp:include page="validate.jsp" flush="false"/>

<jsp:forward>
将当前页面的请求转发给其它web资源(html页面,jsp页面,Serverlet等)
用于转向页面,该指令后面的所有代码都没有机会执行了,因为页面的流程已经转向了另外一个页面了

<jsp:param>
可作为其他标签的子标签,为其他标签传递参数
例如:
<jsp:forward page="addUser.jsp">
    <jsp:param name="userName" value="mi"/>
</jsp:forward>


4. 部署项目到tomcat
在tomcat的server.xml中编写<Content>标签
例如:
<Context path="/test" docBase="F:\Codeing\MyEclipseProjects\test\WebRoot" reloadable="true"/>
其中path为部署的逻辑路径,可与项目名称不同,docbase是物理路径
例如:
https://localhost:8080/test/index.jsp

5.  jsp声明与脚本端变量的区别
jsp声明格式 <%! int a = 3;%>
脚本段形式:<% int b = 5 %>
当服务器将jsp转换为servlet时,会将jsp的声明转换为类的成员变量,而脚本段转换为方法中的局部变量,
servlet是单实例的,这样成员变量的值就只有一个,每个用户都会访问它,而脚本段中则是局部变量,每个
用户访问时各有一份,互不影响。


//jsp中的几个主要对象
6. 关于requset方法
request的setAttribute与getAttribute方法一般都是成对出现的,首先通过setAttritbute方法设置属性与
属性值,然后通过getAttribute方法根据属性获取到对应对象值。setAttribute与getAttribute方法都是在
服务器端内部执行,客户端不知道服务器是否执行过这两个方法
而request的getParameter方法作用是通过表单或者url请求的参数发送过来的参数值,是客户端和服务器之
间的交互,并没有对应的set方法
request对象内数据的存活范围:客户端向服务器发送一个请求,服务器返回一个响应后该请求对象就被销毁,
之后再向服务器发送新的请求时,服务器会创建新的request对象,该对象跟之前的对象没任何关系。

session对象的生命周期:同一个浏览器中,无论发送多少请求,session对象只有一个。

application存活范围:存活范围最大的对象,只要服务器没有关闭,application对象中的数据就会和一直
存在,整个服务器运行过程中,application对象只有一个。

7. 重定向和请求转发
RequestDispatcher的forward方法称为请求转发

请求转发与重定向的区别:
1)请求转发整个过程都处于同一个请求当中
2)重定向实际上    客户端向服务器发送两个请求
3)RequestDispatcher是通过调用HttpServletRequest对象的getRequestDispatcher方法得到的,是属于请求
对象的方法。
4)sendRedirect是HttpServletRsponce对象的方法,即响应对象的方法,既然调用了响应对象的方法,表明整
个请求过程已经结束,服务器开始向客户端返回执行的结果。

8. 一个标准的javaBean有以下几个特性:
是一个公共类
有一个不带参数的构造方法
通过set和get方法设置属性

典型的javaBean类
public class Person {
    private String name = "zhumingjie";

    public String getName() {
        return name;
    }

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


10. jsp访问javaBean的语法

1)导入javaBean类
<%@ page import="com.zhongcunmu.bean.Person" %>

2)声明javaBean对象
<jsp:useBean ));

相关文章:

  • 2022-01-20
  • 2021-11-28
  • 2021-11-30
  • 2022-01-03
  • 2021-12-23
  • 2021-12-09
  • 2021-10-26
  • 2022-12-23
猜你喜欢
  • 2021-07-17
  • 2021-06-01
  • 2021-10-05
  • 2021-09-19
  • 2021-11-19
  • 2021-07-21
  • 2021-07-26
相关资源
相似解决方案