jsp笔记
Jsp
Web服务器访问jsp的过程.
如果是第一次访问jsp文件,web服务器会把jsp翻译成一个servlet文件.再将其编译成一个.class文件.然后加载到内存.蓝色的地方也是为什么java的空间要贵一些.
Jsp的运行原理 Jsp的语法 1.指定元素:用于从jsp发送一个信息到容器,比如设置全局变量,文字编码,引入包.
<%@ page contentType=”text/html;charset=utf-8”%>
<%@ include file=’文件的路径’%> 这个是引入其它的jsp文件main.jsp 注意:这里的路径不要加 /
<%@ mytag:xx 属性/> 2. 脚本元素:可以理解为java片段
<% java片段 %>
<%=表达式 %>
<%! Int i=90; %> 这里的i 是成员变量. 在这里还可以使用方法,
例: <%! Public int getInt(){ int i=90; return i;} %> 3. 动作元素
<jsp:forword file=””>的作用
在开发jsp的过程,我们通常把jsp放在WEB-INF目录下,为了防止用户直接访问jsp文件.在webRoot下我们有一个入口页面,它的主要功能是转发:
<jsp:forword file=”WEB-INF/xx.jsp”></jsp>
<jsp:include file=””></jsp>: 动态引入
<%@ include file=””%> 静态引入
相同点:把一个文件引入到另外一个文件.
区别: 静态引入 把两个jsp翻译成一个servlet文件,所以被引入的文件,不能包括<html><body>
动态引入: 分别把两个jsp文件翻译成servlet文件,可以包括<html><body> Jsp的注释<%-- %--> Jsp中的九大内置对象
pageContext也是一个域对象.也可以用setAttribute(),getAttribute().但是它的生命周期只是在本页面有用. Web开发的几个模式:web-service
Web-service-dao (data access object)
这两个模式其实就是mvc模式 通过看书的jsp的内容
可以在WEB.xml统一默认的网页编码、,内容、缓冲大小等。
<web-app>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp<url-pattern>
<page-encoding>utf-8</page-encoding>
<default-content-type>tect/type</default-contenet-type>
<buffer>16kb</buffer>
<jsp-property-group> </jsp-config>
</web-app>
也可以声明指定的jsp的开头和结尾包括的网页
<web-app>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<include-prelude>/WEB-INF/jspf/pre.jsp</include-prelude>
<include-coda>/WEB-INF/jspf/coda.jspf</include-coda>
</jsp-property-group>
</jsp-config>
</web-app> 如果想禁用JSP上的Scriptlet则可以在web.xml中设置
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
</jsp-config> 可以通过pageContext来设置四种范围属性。
例如:要设置一个session的属性
pageContext.setAttribute(“width”,”50px”,pageContext.SESSION_SCOPE);
返回
String width=
pageContext.getAttribte(“width”,pageContext.SESSION_SCOPE);
这个pageContext.SESSION_SCOPE 可以是request page application
用SESSION交换一下就可以了。
如果使用getAttribte()不知道是什么范围属性时,可以用
String width = pageContext.findAttribute(“width”); 想要做一个error.jsp的界面.必须要<%@ isErrorPage=”true”%> 这样的error.jsp才可能使用exception隐式对象。才能获取错误界面抛出的错误信息。
把错误信息打印出来
Exception.printStackTrace(new PrintWriter(out)); Jsp书的内容
一些标签
<jsp:useBean id=”” class=”” scope=”” type=””></jsp:useBean>
引用一个类
例:<jsp:useBean id="user" class="cc.openhome.User">
id是cc.openhome.User这个包.类的一个实例
class是指包.类
scope 是指范围 有session request application page(默认)
type 要转换的接口 如 ServletRequest转换到HttpServletRequest
type要写上HttpServletRequest
<jsp:setProperty property="name" value="domain" name="user"/>
<jsp:setProperty property="password" value="123" name="user"/>
这个是设置User中的属性
<jsp:getProperty property="name" name="user"/>
这个是返回User中的属性 <jsp:setProperty name="beanName" property="*" />
其中name表示JavaBean的名字,对应useBean标签中的id属性;property为星号,表示不用再具体指定JavaBean属性的值将对应表单中的那个参数,系统会自动根据名字进行匹配.但要求表单参数的名字必须与JavaBean中属性的名字完全相同.
3.通过request的参数值设置
语法格式:
<jsp:setProperty name="beanName" property="propertyName" param="paramName" />
其中name表示JavaBean的名字,对应useBean标签中的id属性;property表示要给哪个属性设置值;param表示表单中的参数名字.此种格式通过request获得表单中的参数值,JSP引擎自动将request获取的参数值传递给JavaBean中对应的属性.但要求request参数名字必须与JavaBean中的属性名字一致.
如:使用JavaBean验证客户身份 如果是scope = session 或 要用request传递的
<jsp:setProperty>
在<jsp:useBrean>的中间和不在中间 是不一样的
中间:是假如user==null的才会加入到request user!=null不会
不在中间:user==null !=null都会加入到request <jsp:param>与<jsp:include>配合使用
includeAction.jsp
<body>
<%double i = Math.random();%>
<jsp:include page="come.jsp">//加载come.jsp
<jsp:param name="number" value="<%=i%>" />//传递参数
</jsp:include>
</body>
可以在come.jsp中取出来 come.jsp
<%//获得includeAction.jsp传来的值:
String str = request.getParameter("number");
double n = Double.parseDouble(str);
<jsp:param>与<jsp:forward>配合使用
跟上面是一样的,也是传递参数
Jsp
Web服务器访问jsp的过程.
如果是第一次访问jsp文件,web服务器会把jsp翻译成一个servlet文件.再将其编译成一个.class文件.然后加载到内存.蓝色的地方也是为什么java的空间要贵一些.
Jsp的运行原理 Jsp的语法 1.指定元素:用于从jsp发送一个信息到容器,比如设置全局变量,文字编码,引入包.
<%@ page contentType=”text/html;charset=utf-8”%>
<%@ include file=’文件的路径’%> 这个是引入其它的jsp文件main.jsp 注意:这里的路径不要加 /
<%@ mytag:xx 属性/> 2. 脚本元素:可以理解为java片段
<% java片段 %>
<%=表达式 %>
<%! Int i=90; %> 这里的i 是成员变量. 在这里还可以使用方法,
例: <%! Public int getInt(){ int i=90; return i;} %> 3. 动作元素
<jsp:forword file=””>的作用
在开发jsp的过程,我们通常把jsp放在WEB-INF目录下,为了防止用户直接访问jsp文件.在webRoot下我们有一个入口页面,它的主要功能是转发:
<jsp:forword file=”WEB-INF/xx.jsp”></jsp>
<jsp:include file=””></jsp>: 动态引入
<%@ include file=””%> 静态引入
相同点:把一个文件引入到另外一个文件.
区别: 静态引入 把两个jsp翻译成一个servlet文件,所以被引入的文件,不能包括<html><body>
动态引入: 分别把两个jsp文件翻译成servlet文件,可以包括<html><body> Jsp的注释<%-- %--> Jsp中的九大内置对象
pageContext也是一个域对象.也可以用setAttribute(),getAttribute().但是它的生命周期只是在本页面有用. Web开发的几个模式:web-service
Web-service-dao (data access object)
这两个模式其实就是mvc模式 通过看书的jsp的内容
可以在WEB.xml统一默认的网页编码、,内容、缓冲大小等。
<web-app>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp<url-pattern>
<page-encoding>utf-8</page-encoding>
<default-content-type>tect/type</default-contenet-type>
<buffer>16kb</buffer>
<jsp-property-group> </jsp-config>
</web-app>
也可以声明指定的jsp的开头和结尾包括的网页
<web-app>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<include-prelude>/WEB-INF/jspf/pre.jsp</include-prelude>
<include-coda>/WEB-INF/jspf/coda.jspf</include-coda>
</jsp-property-group>
</jsp-config>
</web-app> 如果想禁用JSP上的Scriptlet则可以在web.xml中设置
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
</jsp-config> 可以通过pageContext来设置四种范围属性。
例如:要设置一个session的属性
pageContext.setAttribute(“width”,”50px”,pageContext.SESSION_SCOPE);
返回
String width=
pageContext.getAttribte(“width”,pageContext.SESSION_SCOPE);
这个pageContext.SESSION_SCOPE 可以是request page application
用SESSION交换一下就可以了。
如果使用getAttribte()不知道是什么范围属性时,可以用
String width = pageContext.findAttribute(“width”); 想要做一个error.jsp的界面.必须要<%@ isErrorPage=”true”%> 这样的error.jsp才可能使用exception隐式对象。才能获取错误界面抛出的错误信息。
把错误信息打印出来
Exception.printStackTrace(new PrintWriter(out)); Jsp书的内容
一些标签
<jsp:useBean id=”” class=”” scope=”” type=””></jsp:useBean>
引用一个类
例:<jsp:useBean id="user" class="cc.openhome.User">
id是cc.openhome.User这个包.类的一个实例
class是指包.类
scope 是指范围 有session request application page(默认)
type 要转换的接口 如 ServletRequest转换到HttpServletRequest
type要写上HttpServletRequest
<jsp:setProperty property="name" value="domain" name="user"/>
<jsp:setProperty property="password" value="123" name="user"/>
这个是设置User中的属性
<jsp:getProperty property="name" name="user"/>
这个是返回User中的属性 <jsp:setProperty name="beanName" property="*" />
其中name表示JavaBean的名字,对应useBean标签中的id属性;property为星号,表示不用再具体指定JavaBean属性的值将对应表单中的那个参数,系统会自动根据名字进行匹配.但要求表单参数的名字必须与JavaBean中属性的名字完全相同.
3.通过request的参数值设置
语法格式:
<jsp:setProperty name="beanName" property="propertyName" param="paramName" />
其中name表示JavaBean的名字,对应useBean标签中的id属性;property表示要给哪个属性设置值;param表示表单中的参数名字.此种格式通过request获得表单中的参数值,JSP引擎自动将request获取的参数值传递给JavaBean中对应的属性.但要求request参数名字必须与JavaBean中的属性名字一致.
如:使用JavaBean验证客户身份 如果是scope = session 或 要用request传递的
<jsp:setProperty>
在<jsp:useBrean>的中间和不在中间 是不一样的
中间:是假如user==null的才会加入到request user!=null不会
不在中间:user==null !=null都会加入到request <jsp:param>与<jsp:include>配合使用
includeAction.jsp
<body>
<%double i = Math.random();%>
<jsp:include page="come.jsp">//加载come.jsp
<jsp:param name="number" value="<%=i%>" />//传递参数
</jsp:include>
</body>
可以在come.jsp中取出来 come.jsp
<%//获得includeAction.jsp传来的值:
String str = request.getParameter("number");
double n = Double.parseDouble(str);
<jsp:param>与<jsp:forward>配合使用
跟上面是一样的,也是传递参数
jsp笔记的更多相关文章
- JAVA JSP笔记
一.jsp加载项目中资源图片 如果直接将静态页面写的代码copy到jsp中,你会发现图片都无法加载. 获取代码: String path = request.getContextPath(); Str ...
- [Java] JSP笔记 - 自定义标签
自定义标签的创建步骤: 自定义标签的四大功能: 自定义标签的类结构: 在 1.0 中呢, 可以将 <body-content> 的值设置为 JSP, 2.0中则不允许在自定义标签体中出现j ...
- [Java] JSP笔记 - Listener 监听器
Java Web 开发时,可以使用 Listener 来监听来监听一些事件,从而实现一些功能.实际上这个监听器,原理就是 Delphi 中大家常用的各种事件. 1. 那么,监听器的主要用途用哪些呢: ...
- [Java] JSP笔记 - EL、JSTL 常用标签
一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...
- [Java] JSP笔记 - Filter 过滤器
一.什么是Web过滤器 Servlet API 很久以前就已成为企业应用开发的基石,而 Servlet 过滤器则是对 J2EE 家族的相对较新的补充. Servlet 过滤器是可插入的 Web 组件, ...
- [Java] JSP笔记 - Java Bean
一. Java Bean 是什么? Java Bean 其实就是一个符合特定规则的 Java Class.这些规则包括: 使用 public 声明的公用类 属性使用public 的get,set方法访 ...
- JSP 笔记
<%@ page contentType="text/html;charset=UTF-8"%> <!-- 字符编码为utf-8,不然会乱码.... --> ...
- web —— jsp笔记
cookies 的使用 1.首先确保客户机上允许使用cookie,一般在浏览器的 隐私 设置项里可以设置. 2.下面给出具体的例子 a)index.jsp中如果没注册过,让游客注册,如果注册了,拿出贮 ...
- Jsp笔记(1)
1. jsp页面中出现中文乱码怎么解决? <%@ page contentType="text/html; charset=GB2312"%> <%@ page ...
随机推荐
- Solr主从集群配置简要说明
关于solr的集群主要分为主从和SolrCloud两种.主从,比较适合以读为主的场景.SolrCloud适合数据量大,时不时会有更新的情形.那么solr的主从配置很简单.在solrconfig.xml ...
- Virtual Box上安装CentOS7
问题1:安装完没有桌面系统(Gnome或KDE)解答:安装的时候,软件选择为最小安装",更改该选择 问题2:开机提示Initial setup of CentOS Linux 7 (core ...
- 瓶颈生成树与最小生成树 POJ 2395 Out of Hay
百度百科:瓶颈生成树 瓶颈生成树 :无向图G的一颗瓶颈生成树是这样的一颗生成树,它最大的边权值在G的所有生成树中是最小的.瓶颈生成树的值为T中最大权值边的权. 无向图的最小生成树一定是瓶颈生成树,但瓶 ...
- 项目回顾1-图片上传-form表单还是base64-前端图片压缩
第一个项目终于上线了,是一个叫亲青筹的公益众筹平台,微信端,电脑端还有后台界面大部分都是我完成的,几个月过来,感觉收获了很多,觉得要总结一下. 首先想到的是图片上传的问题.在通常表单数据都是ajax上 ...
- AOJ 739 First Blood
First Blood Time Limit: 1000 ms Memory Limit: 64 MBTotal Submission: 152 Submission Accepted: 37 ...
- HDU 5044 Tree --树链剖分
题意:给一棵树,两种操作: ADD1: 给u-v路径上所有点加上值k, ADD2:给u-v路径上所有边加上k,初始值都为0,问最后每个点和每条边的值,输出. 解法:树链剖分可做,剖出来如果直接用线段树 ...
- 最长上升子序列(LIS)模板
最长递增(上升)子序列问题:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i<j,必有a[i]<a[j],这样最长的子序列称为最长递增(上升)子序列. 考虑两个数a[x ...
- 将TP引擎改为smarty引擎
在common/config文件里设置'TMPL_ENGINE_TYPE'=>'Smarty'即可,但要注意,在模板文件里的css样式{}要用一对{literal}{/literal}标签包裹, ...
- MYSQL密码设置
当MYSQL安装成功后,root用户的密码默认是空的,有三种方式可以重新设置root账号的密码 1.用root 进入mysql后 mysql>set password =password('你的 ...
- addEvent和removeEvent优化写法
;(function(){ /** * 初始化分支是一种优化模式,当知道某个条件在整个生命周期内都不会发生变化时,仅对该条件测试一次. */ // 一般写法 var util = { addEvent ...