JSP 2.1 Tag Libs / JSTL 1.2 ... + tomcat6
http://hintcnuie.iteye.com/blog/178038
http://jakarta.apache.org/taglibs/doc/standard-1.0-doc/intro.html
JSP 2.0 Tag Libs RDC / Standard-1.1
JSP 1.2 Tag Libs Standard-1.0
JSP 1.1 Tag Libs DateTime / I18N / JNDI / Log / Random / Regexp / String
http://aguu125.blogbus.com/logs/32255197.html
JSTL 1.2 (J2EE 5/JSP 2.1) + tomcat6
Download: https://maven-repository.dev.java.net/repository/jstl/jars/
JSTL 1.1 (J2EE 1.4/JSP 2.0)
Download: http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
JSTL 1.0 (J2EE 1.3/JSP 1.2)
Download: http://jakarta.apache.org/site/downloads/downloads_taglibs-standard-1.0.cgi
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
http://user.qzone.qq.com/170475387/blog/50
JSP API
http://tomcat.apache.org/tomcat-5.5-doc/jspapi/index.html
Jasper API
http://tomcat.apache.org/tomcat-5.5-doc/jasper/docs/api/index.html
Servlet API
http://tomcat.apache.org/tomcat-5.5-doc/servletapi/index.html
http://jakarta.apache.org/taglibs/index.html
http://archive.apache.org/dist/jakarta/taglibs/standard/
http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
http://archive.apache.org/dist/jakarta/taglibs/standard/source/
JSP 2.0 技术手册.pdf
http://leishih.iteye.com/blog/131123
http://lib.verycd.com/2008/03/28/0000184299.html
JSP 2.0 Tag Libs
RDC Tag libs Reusable Dialog Components
Standard-1.1 http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi
JSP 1.2 Tag Libs Standard-1.0
JSP 1.1 Tag Libs DateTime 、 I18N 、 JNDI 、 Log 、 Random 、 Regexp 、 String
JSP 1.0 Tag Libs core 、 format 、 xml 、 sql
core
表达式操作:out、set、remove、catche
流程控制:if、choose、when、otherwise
迭代操作:forEach、forTokens
URL操作:import param、url param、redirect param
session与cookie的区别
http://blog.csdn.net/ddviplinux/archive/2008/04/17/2299441.aspx
利用session实现在线人员监控
http://tcrct.iteye.com/blog/259173
JSP防止吃重复在线人数统计
http://xiaozhao-521.iteye.com/blog/263420
scope :page、request、session、application
page<request<session<application
session默认时效:
Tomcat 〉〉〉〉〉〉
config文件夹web.xml文件
<session-config>
<session-timeout>30</session-timeout>
</session-config>
Tomcat 〉〉〉〉〉〉
Expression Language 隐式对象 11个 :JSP、scope、param、header、Cookie、initParam。
JSP PageContext
作用域 pageScope、requestScope、sessionScope、applicationScope
请求参数 param、paramValues
请求头 header、headerValues
Cookie cookie
初始参数 initParam
JSP 隐式对象 9个 : request、response、out、session、appliation、pageContext、page、config、exception
输入输出对象::request、response、out
作用域通信对象:session、appliation、pageContext
Servlet对象:::page、config
错误对象::::exception
scriptlet
<% if (user.getRole() == "member")) { %>
<p>Welcome, member!</p>
<% } else { %>
<p>Welcome, guest!</p>
<% } %>
jsp
<jsp:setProperty name="user" property="timezonePref" value='<%= request.getParameter("timezone") %>'/>
jsp+el
<c:out value="Hello ${user.firstName} ${user.lastName}"/>
el算术运算符
${item.price * (1 + taxRate[user.address.zipcode])}
el关系和逻辑运算符
${(x >= min) && (x <= max)}
el版本Taglib伪指令
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
rt版本Taglib伪指令
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt" %>
<c:set>
<c:set var=" name " scope="s cope " value=" expression "/>
<c:set var="timezone" scope="session">CST</c:set>
<c:set var="square" value="${param['x'] * param['x']}"/>
<c:remove>
<c:remove var="timezone" scope="session"/>
<c:out>
<c:out value=" expression " default=" expression " escapeXml=" boolean "/>
带缺省值:Hello <c:out value="${user.username}" default=="Guest"/>!
禁用转义:<c:out value="${user.company}" escapeXml=="false"/>
<c:set><c:out/></c:set>
<c:set var="timezone" scope=="session"><c:out value="${cookie['tzPref'].value}" default=="CST"/></c:set>
通过避免使用脚本编制元素来简化对 JSP 应用程序的软件维护
developerWorks 中国 > Java technology
http://trampeagle.iteye.com/blog/23492
http://www.ibm.com/developerworks/cn/java/j-jstl0211/
JSTL Core使用定制标记进行流控制和 URL 管理
developerWorks 中国 > Java technology | Web development >
http://www.ibm.com/developerworks/cn/java/j-jstl0318/
JSP语法:<% =userList.getUser().getPhoneNumber() %>
JSP+JSTL:<c_rt:out value="<% =userList.getUser().getPhoneNumber() %>" />
JSTL+EL:<c:out value="${userList.user.phoneNumber}" />
1。jsp有哪些动作?(6种)作用分别是什么?
jsp:include 在页面被请求的时候引入一个文件。
jsp:useBean 寻找或者实例化已个JavaBean。
jsp:setPropetry 设置JavaBean的属性。
jsp:getProprtry 输出某个JavaBean的属性。
jsp:forward 把请求转到一个新页面。
jsp:plugin 根据浏览器类型为java插件生成Object或embed标记。
2。jsp include中实现两种方式的区别?
动态和静态两种
动态include:用jsp:include动作实现,它总会检查所含文件的变化,适合于包含动态页面,并且可以带参数。
静态include:用include伪码事项,定不会检查文件的变化,适用于包含静态页面。
4. Forword 和Redirect 的区别
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,
然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,
所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,
一般来说浏览器会用刚才请求的所有参数重新请求,
所以session,request参数都可以获取。
http://www.gzit.org/html/27/27-1641.html
含参请求转发
<jsp:forward page="Relative URL">
作用与SERVLET中使用的RequestDispatcher方法的作用是一致
由服务器执行,因此跳转的页面可以放在WEB-INF目录中,提高程序的安全性
服务器重定向
response.sendRedirect()
向浏览器发送一个特殊的HEADER,然后又浏览器来做转向,装到指定的页面
浏览器上的地址栏里可以明显看到地址的变化,使用sendRedirect做转向时,转向的页面不能放在WEB-INF下
页面级重定向
<meta http-equiv="Refresh" content="秒数";url="跳转的文件或者地址">
重定向 请求作用域的参数在转到下一页面时回失效
还有就是用js了...
windows.location.href='www.gzit.com'
windows.navigate('www.gzit.com')
windows.location.replace('www.gzzit.com')
Servlet
Servlet的Filter过滤器 http://gotothework.iteye.com/blog/226204
过滤器是请求和响应之间的一种WEB组件,它驻留在服务器端,用来截取客户端与资源之间的请求,并对这些信息进行“过滤”。
Servlet容器对部署描述符中声明的每一个过滤器只会创建一个实例。与Servlet类似,容器将在同一个过滤器实例上运行多个线程来同时为多个请求服务,因此开发过滤器时要注意线程安全问题。
当Web容器接受到一个对资源的请求时,它将判断是否有过滤器与这个资源相关联,如果有那么容器将把请求交给过滤器进行处理,在过滤器中可以改变 请求的内容,或重新设置请求的报头信息,然后将请求发送给目标资源,当目标资源对请求做出响应时,容器同样会将响应转发给过滤器,在过滤器中可以对响应的 内容进行过滤,从上面的过程我们可以看出,客户端和目标资源不需要知道过滤器的存在,对于客户端来说是透明的。
过滤器位于javax.servlet包中,有3个主要方法:
1.init(FilterConfig config)
Web容器调用方法来初始化过滤器,容器在调用该方法时,向过滤器传递FilterConfig对象,FilterConfig用法和 ServletConfig类似。利用FilterConfig对象可以得到ServletContext对象,以及在部署描述符中配置的过滤器的初始化 参数。
2.doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
doFilter()方法类似Servlet接口的service()方法。当客户端请求目标资源的时候,容器会调用与这个目标资源想关联的过滤器的 doFilter()方法。在这个方法中,可以对请求和响应进行处理,实现过滤器的功能。在特定的操作完成后,可以调用chain.doFilter() 方法将请求传给下一个过滤器(或目标资源),也可以直接向客户端返回响应信息,或利用RequestDispatcher的forward()和 include()方法,以及sendRedirect()方法转发。
但是要注意,这个方法的请求响应参数的类型是ServletRequest和ServletResponse,也就是说过滤器的使用不依赖具体的协议。
3.destroy()
Web容器调用该方法只是过滤器的声明周期结束。
下面看下过滤器在Web.xml中的声明:
<filter> <filter-name>setEncoding</filter-name> <filter-class>com.test.CharFilter</filter-class> </filter> <filter-mapping> <filter-name>setEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Filter的声明和Servlet的类似,从上面的简单的配置中就可以看到,不做过多说明,主要说下<url-pattern>元素中的参数:
1.REQUEST,当用户直接访问页面时,Web容器将会调用过滤器,如果目标资源是通过RequestDispatcher的includ()或forward()方法访问时,那么不会调用这个过滤器。
2.FORWARD,如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用,除此之外过滤器不会被调用。
3.INCLUDE,如果目标资源是通过RequestDispatcher的include()方法访问时,调用过滤器,其他不会调用。
4.ERROR,如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用,除此之外不会被调用。
5./*,所有请求都会调用。
过滤器应用的很广,特别是在Spring中,AOP,Acegi都应用到了过滤器的技术,所以,我们可以看出,只有很好的掌握了Servlet的 各种技术,我们在后期的学习中才能更加的得心应手。在这里,我只是简单的介绍了过滤器基础的东西,更加高级的,希望与大家一起学习讨论。
E:\program\JSP+Servlet+JSF\11(进阶一)_JSP+JDBC实现
/* E:\program\JSP+Servlet+JSF\11(进阶一)_JSP+JDBC实现>tree /f 卷 data 的文件夹 PATH 列表 卷序列号码为 0044004A E462:C3F5 E:. │ JSP+JDBC留言管理程序-cl.avi │ 笔记.pdf │ 简介.txt │ └─代码 └─note delete_do.jsp insert.jsp insert_do.jsp list_notes.jsp list_notes.jsp.bak login.jsp login_conf.jsp login_success.jsp update.jsp update_do.jsp 数据库创建脚本.txt */ --删除表 DROP TABLE person; DROP TABLE note; --删除序列 DROP SEQUENCE note_seq; --创建表 CREATE TABLE person( id varchar(20) not null primary key, name varchar(20), password varchar(20) ); CREATE TABLE note( id int not null primary key,--sequence title varchar(20) not null, author varchar(20) not null, content varchar(50) not null ); --插入数据 INSERT INTO person VALUES('txj','唐修进','tttttt'); INSERT INTO person VALUES('lindows','唐修进','llllll'); --提交事务 commit;
el 表达式
mytag extends BodyTagSupport //JSP API
doStartTag();
--EVAL_BODY_INCLUDE 只输出标签体内容
--EVAL_BODY_BUFFER 计算标签体内容或处理
--SKIP_BODY_INCLUDE 忽略标签体内容
doEndTag();
--SKIP_PAGE 并输出标签后内容
--EVAL_PAGE 输出标签后内容
tagsupport与bodytagsupport的区别
http://mercyblitz.iteye.com/blog/70114
http://nenty.iteye.com/blog/261951
JSP自定义标签学习(高级)
http://www.cnzzad.com/tut/47843.html
JSP自定义标签学习之高级标签
http://www.eimhe.com/bbs/viewthread.php?tid=91949&extra=page%3D1
JSP 购物车
1.session 放入服务器内存
2.隐藏表单域:request.setAttribute();//来回传输耗资源
end