jsp 三大指令和动作标签
jsp三大指令
一个jsp页面中可以有0-N个指令
1.page--->最复杂:<%@page language="" ...%>
*pageEncoding和contentType
pageEncoding:指定当前jsp页面的编码,只要不说谎,就不会有乱码!在服务器要把jsp编译成.java时需要使用pageEncoding
contentType:它表示添加一个响应头:Content-Type ,相当于response.setContentType()
*import:导包,可以出现多次
*errorPage和isErrorPage
errorPage:当前页面如果抛出异常,那么要转发到哪一个页面,由errorPage决定,状态码为200
isErrorPage:指定页面为处理错误页面!当该属性为true时,这个页面会设置状态码为500,而且这个页面可以使用9大内置对象中的exception
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="error/error.jsp"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'a.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<%
int a=13/0;
%>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isErrorPage="true"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'error.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
哈哈,出错了!<br/> <%
//<%=exception.getMessage()% > <br/>
//<%exception.printStackTrace(response.getWriter()); % >
//当然,一般不会直接将错误信息显示给用户,会变得人性化
%> </body>
</html>
<error-page>
<error-code>404</error-code>
<location>/error/error.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/error.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.RuntimeException</exception-type>
<location>/index.jsp</location>
</error-page>
*autoFlush和buffer
autoFlush:指定jsp的输出流满时,是否自动刷新,默认为true,如果为false,那么在缓冲区满时会抛出异常
buffer:指定缓冲区大小,默认为8kb,不需要修改
*isELIgnored:是否忽略el表达式,默认为false,不忽略,即支持!
*基本没用
language:指定当前jsp编译后的语言类型,默认为Java
info:信息
isThreadSafe:当前的jsp是否支持并发访问!
session:当前页面是否支持session,如果为false,那么当前页面就没有session这个内置对象
extends:让jsp生成的servlet去继承该属性指定的类
2.include-->静态包含
*与RequestDispatcher的include()方法的功能相似
*<%@include%>是在jsp编译成Java文件时完成的,它们共同生成一个Java文件,然后再生成一个class!
*RequestDispatcher的include()是一个方法,包含和被包含是两个Servlet,即两个class,它们只是把响应的内容在运行时合并了
*作用:将页面分解了,使用包含的方式组合在一起,这样一个页面中不变的部分就是一个独立的jsp,而我们只需要处理变化的页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'hel.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<!--
这里注意file不能使用变量,因为变量是在Java代码中的,Java代码的执行是在程序运行之后财货执行的
-->
<body>
<%
String name="guodaxia";
%>
<%@include file="lj.jsp" %>
</body>
</html>
<%=name %>
<!-- 这里需要将其他删掉,因为它是将两个jsp拼接成为一个jsp生成class文件 -->
3.taglib-->导入标签库
两个属性
>prefix:指定标签库在本页面中的前缀!由我们自己来起名称!
>uri:指定标签库的位置
><%@taglib prefix="pre" uri="/struts-tags"%> 前缀的用法<s:text>
jsp动作标签
JSP动作标签
这些jsp的动作标签,与html的标签有本质的区别。
*动作标签是由tomcat(服务器)来解释执行!它和Java代码一样,都是由服务端来执行的。
*html由浏览器来执行!
*<jsp:forward>: 转发!它与RequestDispatcher的forwaard方法是一样的,一个是在Servlet中使用,一个是在jsp中使用!
*<jsp:include>: 动态包含:它与RequestDispatcher的include方法是一样的,一个是在Servlet中使用,一个是在jsp中使用!
><%@include%>和<jsp:include>有什么不同?
*<jsp:param>: 它用来作为forward和include的子标签,用来传递参数使用
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'a.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<h3>a.jsp</h3>
<!-- <jsp:include page="b.jsp"/> -->
<jsp:forward page="b.jsp">
<jsp:param value="guodaxia" name="name"/>
<jsp:param value="1234" name="password"/>
</jsp:forward>
</body>
</html>
<h3>b.jsp</h3>
<%
String name=request.getParameter("name");
String password=request.getParameter("password");
out.write(name+","+password);
%>
javaBean规范:
javaBean的规范:
1、必须要有一个模认构造器
2、提供get/set方法,如果只有get方法,那么这个属性就是只读属性!
3、属性:有get/set方法的成员,还可以没有成员,只有get/set方法。属性的名称就是get/set方法将前面的get/set去除之后首字母小写得到
4、方法名称满足一定的规范,那么它就是属性!boolean类型的属性的读方可以是is开头也可以是get开头
内省:
内省类-->Bean信息-->属性描述符-->属性的get/set对应的method-->可以反射了
=====
commons-beanutils,它是依赖内省完成
*导包
>commons-beanutils.jar
>commins-loggin.jar
BeanUtils.setProperty(stu, "username", "guodaxia");
int age=Integer.valueOf(BeanUtils.getProperty(stu, "age"));
BeanUtils.populate(stu, map);
jsp中与javaBean相关的标签
*<jsp:useBean>--->创建或者查询bean
*<jsp:useBean id="user1" class="cn.itcast.domain.User" scope="session"/>在session域中查找名为user1的useBean不存在则创建
*<jsp:useBean id="user1" class="cn.itcast.domain.User" scope="session"/>
*<jsp:setProperty>
*<jsp:setProperty property="username" name="user1" value="admin"/>
*<jsp:getProperty>
*<jsp:getProperty property="username" name="user1"/>
jsp 三大指令和动作标签的更多相关文章
- JSP九个内置对象及指令、动作标签
一.JSP九大内置对象 (一)JSP中无需创建就可以使用的9个对象 输入输出对象 1.response(HttpServletResponse):处理JSP生成的响应,然后将响应结果发送给客户端.是s ...
- JSP三大指令、七大动作、九大对象
<%---------------------- JSP三大指令 -----------------------------%><%-- 1. page: language impo ...
- JSP三大指令
JSP三大指令1.page-->最复杂,<%@page language = "java" info = "xxx" ..%> *pageE ...
- JSP三大指令 /9大内置对象 /Javabean / EL
一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info="xxx". ...
- JSP三大指令(Page指令,include指令,taglib指令)
参考文章: https://www.runoob.com/jsp/jsp-directives.html http://c.biancheng.net/view/1458.html https://b ...
- jsp学习与提高(一)——JSP生命周期、三大指令及动作
1.jsp定义: 1.1以java语言为脚本语言,运行在服务端的程序: 1.2处理客户请求,生成页面 1.3其本质是个sevlet会生成.java文件编译后再生成.class文件 2.jsp生命周期( ...
- JSP编译指令与动作指令
下面这个面试经常问到,要理解. 上面这个效果一样,重点. <jsp:include>动作在请求期间被执行,而include指令在编译期页面间被执行.
- JSP三大指令 六大内置对象
(1)include指令 作用: 在当前页面用于包含其他页面 语法: <%@include file=”common/header.jsp”%> (2)page指令 作用: 告诉tomca ...
- JSP三大指令是什么?
JSP页面中的指令JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言等.语法规则:<%@ 指令名 属性=值 属性=值 ... %>指令可以有很多个属性,它们以键值对的形 ...
随机推荐
- 使用git了解代码编写过程
在看教程时,有的老师会将代码放到github,如果不想跟着视频一步一步来,那就直接clone整个代码,但整个看着又有点蒙,那就使用版本切换的功能了. 首先 git clone 下载下来 git log ...
- Webpack+React配合开发
前面两篇关于webpack的基础和进阶,请先务必阅读之前的文章. Webpack教程一 Webpack教程二 什么是React React是一个由Facebook开发的library,它的口号是“A ...
- 无线Ad-hoc网络的关键技术之路由(转)
无线Ad-hoc网络的关键技术之路由http://network.51cto.com/art/201003/189719.htm
- HDU 1026 Ignatius and the Princess I (BFS)
题目链接 题意 : 从(0,0)点走到(N-1,M-1)点,问最少时间. 思路 : BFS..... #include <stdio.h> #include <string.h> ...
- POJ 2653 Pick-up sticks(线段相交)
题目链接 题意 : 把每根棍往地上扔,找出最后在上面的棍,也就是说找出所有的没有别的棍子压在它的上面的棍子. 思路 : 对于每根棍子,压在他上面的棍子一定是在它之后扔的棍子,所以在找的时候只要找它之后 ...
- C#中对象的输出
假设有个Costmer类如下: class Costmer { public string Id { get; set; } public string City { get; set; } publ ...
- 一、Android NDK编程预备之Java jni简介
转自: http://www.eoeandroid.com/thread-264384-1-1.html 游戏开发 视频教程 博客 淘帖 论坛›eoe·Android应用开发区›Androi ...
- poj 1797(最短路变形)
题目链接:http://poj.org/problem?id=1797 思路:题目意思很简单,n个顶点,m条路,每条路上都有最大载重限制,问1->n最大载重量.其实就是一最短路的变形,定义wei ...
- WinDbg调试流程的学习及对TP反调试的探索
基础知识推荐阅读<软件调试>的第十八章 内核调试引擎 我在里直接总结一下内核调试引擎的几个关键标志位,也是TP进行反调试检测的关键位. KdPitchDebugger : Boolean ...
- 【uva753/poj1087/hdu1526-A Plug for UNIX】最大流
题意:给定n个插座,m个插头,k个转换器(x,y),转换器可以让插头x转成插头y.问最少有多少个插头被剩下. 题解: 最大流或者二分图匹配.然而我不知道怎么打二分图匹配..打了最大流.这题字符串比较坑 ...