JSP:Html代码+Java脚本+JSP标签
1.Java脚本
- <% 内容 %>:方法脚本
- <%= 内容 %>:赋值脚本
- <%! 内容 %>:类脚本
2.JSP三大指令
- 指令格式:<%@指令名 属性="属性值"... %>
>page指令
- pageEncoding:指定当前JSP文件的编码,与当前JSP真实编码一致,则不会乱码
- ContentType:相当于response.setContentType(xxx),属性值为xxx,若和pageEncoding一致,基本不会乱码
- pageEncoding和ContentType若两者都未设置,默认值均是iso;两者定义一个,那么表示的是另一个属性值为xxx;若两者同时定义,则各为其值。例如<% @page pageEncoding="utf-8" %>,表示的是Content属性为utf-8,而pageEncoding未定义。
- import:导包,属性可以多次定义,其表示是导入包的总和
- errorPage:如果当前页面抛异常,转发到哪个页面(请求转发)
- isErrorPage:当前页面是否是处理异常的页面,如果属性值为true,那么该页面会设置状态码500,并且可以使用9大内置对象的exception
在web.xml文件中,配置处理异常的页面
/* 同时出现,谁越精确,优先级越高*/
// 1.根据状态码,转发页面
<error-page>
<error-code>404</error-code>
<location>页面url<location>
</error-page>
// 2.根据抛出的异常
<error-page>
<exception-type>java.lang.RuntimeException</exception-type>
<location>页面url<location>
</error-page>
- autoFlush:指定jsp文件输出流缓冲区是否自动刷新,默认值为true,若为false,缓冲区满时会抛出异常
- buffer:指定缓冲区大小,默认为8KB
- isELIgnored:是否忽略EL表达式,默认值为false,不忽略。
- language:指定jsp编译后的语言类型,默认是java
- infor:写一些信息
- isThreadSafe:当前jsp是否支持并发运行,true为不支持
- session:当前jsp文件是否支持session,若为false,则不支持,没有Session的9大内置对象
- extends:让当前jsp文件生成的Servlet去继承该属性定义的类
>include指令(静态合并)
- 与requestdispatcher.include(request,response)类似,都是“合并”
- requestdispatcher的include方法合并的是响应的内容
- include指令合并的是jsp文件:两个jsp文件编译成一个java,然后成一个class
- include指令的“静态”指的是include指令是一个静态的指令(编译时就执行)
- 把包含的jsp文件代码全部“复制粘贴”到include的位置,双向都不能实现参数传递
- include指令的file属性,表示指定包含文件的路径
>taglib(标签库相关指令)
- prefix:给标签库中的标签加前缀(防止标签名冲突),加了前缀名后的标签格式为前缀名:标签名
- uri:指定标签库位置
/* 演示prefix指定标签库的标签前缀后,标签的名称
uri随便写的,这个属性根据具体情况应用*/
<%taglib uri="/Project/taglib" prefix="pre" >
那么:text标签应该为<pre:text></pre:text>
3.九大内置对象
// a.jsp
<%
/* 内置对象是可以直接访问的变量
*/
RequestDispatcher dispatcher = request.getRequestDispatcher();
%>
4.JSP动作标签
5.JavaBean(有规范的Java类)
- 有无参构造函数
- 对于每个属性,至少有get/set方法之一
>使用JavaBeanUtils前提
- 导入commons-beanutils和commons-logging 两个jar包(文末有资源分享)
>将Map对象转换成JavaBean对象
>JSP中与JavaBean相关的标签
//从session域中查找名为user1的JavaBean对象,若未找到,则新建一个
<jsp:userBean id = "user1" scope = "session" class = "MyJavaBean">
// 在名为user1的JavaBean对象中设置一个名为name,值为张三的参数
<jsp:setProperty name = "user1" property = "name" value = "张三">
// 获取名为uesr1的JavaBean对象中,属性名为name的属性值
<jsp:getProperty name = "user1" property = "name" >
资源分享
- commons-beanutils和commons-logging两个jar包
链接:https://pan.baidu.com/s/1tjnrNLqJaInoa7asbFRbiw
提取码:y2i4