
JSP_学习笔记_bruce.doc
57页1 What is JSP.2 Why,Where and How JSP.3 JSP Principle.4 Base JSP(Statement,Script,Expression,Direction,Action).5 JSP,Life cycle.*******************************************1 What is JSP.1)什么是JSPJSP: Java Server Page, Java EE组件,本质上是Servlet运行在Web Container.接收Http Request,生成Http ResponseJSP使得我们能够分离页面的静态HTML和动态部分2 Why,Where and How JSP.1)为什么需要JSPServlet: java class ---> out.println("");Jsp: script language ---> 2)Jsp用在哪里UI,表现层Servlet----->Controll图解JSP与Servlet的分工合作(比较没有JSP之前Servlet是如何唱独角戏)a)单独使用Servlet。
b)单独使用JSP(Model 1)c)结合JSP和Servlet(Model 2)3)如何开发JspJsp文件后缀名--->.jspJsp文件的组成--->html+jsp脚本元素(Java语言编写)不用在web.xml中配置http://localhost:8080/baseJSP/welcome.jsp<%!String words="Welcome to our homepage,welcome to SD0702...";%><%=words%>3 JSP Principle.图解运行原理4 Base JSP(Statement,Script,Expression,Direction,Action).1)Jsp声明 <%! %>声明类成员<%!int i=100;%><%!String word="春田花花大学";%><%!private int counter=0; public int count(){ return ++counter; }%>
<%=count()%>
2)Jsp脚本 <% %>_jspService()中的局部代码<%System.out.println("Hi,I like JSP.");%><%Connection conn=DriverManager.getConnection(); Statement st=con.createStatement(); String sql="select ..."; ResultSet rs=st.executeQuery(sql);%>比较<%!int i=100;%> //成员变量<%int i=100;%> //_jspService()方法中的局部变量<%!public void hello(){}%><%public void hello(){}%> //error3) 表达式 <%= %>输出数据至页面的当前位置<%="Hello,JSP world!"%><%=name%> //<%!String name="GiGi";%><%=new java.util.Date()%>4)指令 <%@ %>page includetaglibpage指令---->import,session,isThreadSafe,errorPage,etcimport--->导入其它的包或类<%@page import="java.util.Date"%><%@page import="java.sql.*"%><%@page import="java.util.*,java.io.*,.*"%>session--->当前Jsp是否参与会话 default--->true<%@page session="true"%> request.getSession();<%@page session="false"%>session="true"时,可用内建对象session直接访问会话<%=session.getAttribute("name")%>-----------以下属性不再使用---------------------------isThreadSafe--->当前Jsp页面是否线程安全 default--->true<%@page isThreadSafe="true"%> 普通的Servlet,可以并发处理用户请求<%@page isThreadSafe="false"%> 相当于Servlet实现了SingleThreadModel接口,不能并发处理请求(强烈要求禁止使用该属性)-----------以上属性不再使用---------------------------errorPageisErrorPage--->Jsp页面中出现异常的处理方式对于有可能出现异常的页面<%@page errorPage="error.jsp"%>对于处理异常的页面<%@page isErrorPage="true"%> <%=exception%> 内建对象contentType--->设置Jsp内容的MIME类型<%@page contentType="text/html; charset=gbk"%> 等价于Servlet:response.setContentType("text/html; charset=gbk");include指令--->file把目标页面的内容包含到当前页面,产生页面叠加以后的输出效果<%@include file="title.html"%><%@include file="booter.jsp"%>在Jsp编译的时候被处理taglib指令(放在JSTL处详细讲)<%@ taglib uri=" prefix="tree" %>JSP 1.1 中需要 flush 属性,因此,如果代码中不用它,会得到一个错误但是,在 JSP 1.2 中, flush 属性缺省为 false由于清空大多数时候不是一个重要的问题,因此,我的建议是:对于 JSP 1.1,将 flush 设置为 true;而对于 JSP 1.2 及更高版本,将其设置为关闭 Jsp中的注释:a、java方格注释 编译器会忽略掉此类注释中的内容<%--ur comments--%><%//ur comments%><%/*ur comments*/%><%//new java.util.Date()%>b、html风格注释 编译器会执行此类注释中的代码out.println("")例子:1)关于外星人的问卷调查我欢迎外星人进入我们的世界,帮助我们发展我害怕外星人,无法接受他们进入我们的世界外星人很神秘,我不知道存不存在外星人我喜欢听UFO的故事,但也许那只是一些很好玩的故事而已不要和我谈论外星人,地球人已经很复杂了如果有外星人,我想和他们说: 嘿嘿,我们可以做朋友么?2)NumberGuess.jsp猜一个数字,如果猜对显示恭喜信息,猜错则提示客户猜的数字太小还是太大了。
5 JSP,Life cycle(与Servlet的生命周期比较).//JSP容器第一次装载jsp文件时调用一次public void _jspInit(){System.out.println(this.getClass()+":entering _jspInit()...");}//每个请求都要调用一次public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { }//jsp文件被修改时,JSP容器会销毁旧的jsp文件对应的对象,//重新装载一次更新后的jsp文件的内容(只调用一次) public void _jspDestroy(){System.out.println(this.getClass()+":entering _jspDestroy()...");}6.homework1)好又多优惠政策购买金额超过500 RMB 有90%折扣购买金额超过1000 RMB 有85%折扣购买金额超过1500 RMB 有80%折扣购买金额超过2000 RMB 有75%折扣购买金额超过10000 RMB 有70%折扣,赠送会员卡一张2)九九乘法表day21 Jsp调用JavaBean2 异常处理 3 JAAS实现安全(可选)**************************************************************1 Jsp调用JavaBean分离页面的显示代码和业务逻辑代码,将业务代码放到后台的Java Bean中。












