1、第一章1. JSP 的全称是 Java Server Pages。是由 sun 公司倡导建立的一种 (动态)网页技术标准,是(Java 和 HTML)的结合。2.JSP 基于 JAVA 适合于(企业计算) (跨平台) (安全性高) (易维护)3.JSP 所有操作都在(server 服务器)端执行,JSP 是运行在(Web )服务器上的(脚本文件)4.JSP 是 Servlet 技术的成功应用。5.如果来安装开发文件需先下载并安装 JDK,然后再安装 JSP 引擎。6.测试服务器:http:/localhost:8080 或 http:/127.0.0.1:80807.配置端口:server.x
2、ml 中 connector.Part=“8080”(默认值)8.设置 web 服务目录(关键)根目录:webappsroot新建目录:server.xml 文件中的 context path虚拟目录:/apple/cloud相对目录:9.JSP 运行原理:多用户请求一个 jsp 页面时,jsp 引擎为每个用户启动一个(线程)。第二章1.JSP 页面的基本结构:HTML 标记,JSP 标记,变量和方法的声明,Java 程序片,Java表达式。2. JAVA 程序片3.JSP 指令标记:4.JSP 表达式语言 F1 的语法是 $EL expressing5.变量:页面成员变量() 局部变量()6
3、.JSP 中的注释:显式 隐式7.JSP 指令标记:page 指令,include 指令,taglib 指令8.指令中的属性有:contentType、import、language、session、buffer、auotFlush 、isThreadSafe、pageEncoding可以出现多次,有些指令可以设置不同值,如 import;而有些指令不允许设置不同值,如ContentType。9.contentType:可以设置多次,但必须为同一值。10.include 指令与 include 动作:include 指令标记的作用是在 JSP 页面出现该指令的位置处,静态插入一个文件。Incl
4、ude 动作标记是在 JSP 页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前 JSP 页面。告诉 JSP 页面动态加载一个文件。11.useBean 动作标记用来创建并使用一个 JavabeanForward 动作标记用来当前页面的转向 plugin 动作标记指示 JSP 页面加载 Java plugin 插件,使用该插件来运行 java applet 小程序。第三章1.tag 文件主要用来实现代码复用。2.存储目录:.WEB-INFtags 下3.tag 指令常用属性:body-content.language,import,pageEncoding4.taglib 允许页面使用
5、者自定义标签库标记5.标记体:6.include 指令7.attribute 指令的作用:使用 attribute 指令可以动态地向 tag 文件传递对象。8.variable 指令作用:使用 variable 指令可以将 tag 文件中的对象返回给调用该 tag 文件的JSP 页面。9.tag 标记的嵌套。第四章1.request,response ,session ,application,out2.request 对象获取用户提交信息的最常用方法是 getParameter(s)3.用户用表单提交信息时的两种方法为 method=get,method=post4.表单中有汉字时,接收页面
6、进行的处理:将获取的字符串用 ISO-8859-1 进行编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串对象。5.JSP 引擎可以让内置对象 request 调用方法 getInputStream()获得一个输入流6.response 对象可以动态响应 contentType 属性7.response.sendRedirective(URL)的作用是:使用 response 对象的 sendRedirect(URL.url)方法实现用户的重定向。8.session 对象记录用户会话的有关链接信息,保存用户会话期间需要保存的数据信息。9.保持 session 对象 ID 的唯一性
7、: Cookie。U RL 重写技术。10.访问同一页面时买不同用户 session 的 ID 是不同的。11.同意用户 session 的 ID 号在同意 web 服务目录下是相同的,在不同的 Web 父目录下是不同的(因客户端而异,因服务目录而异)12.session 对象的生存周期:(getCreationTime1)可以获取 session 对象创建的时间,该时间的单位是毫秒。 isNew ()判断 session 是否为一个创建对象。 getMaxInactiveInterval()获取最长发呆时间,单位为秒。 “发呆时间”指的是客户端对服务目录下的 JSP 页面发出的两次请求之间的
8、间隔时间。cookie.setMaxAge(60*60) 的意思是将 cookie 的保存时间设置为一个小时。13.application 对象:因 web 服务目录而异,与用户无关,随服务器启动而产生。14.application 对象主要是用来共享网站信息,可以共享服务器上所有的访问者的该 web 服务目录下的所有 jsp 页面和 Java 程序,简言之:用于在多个程序中保存信息15.session 与 application 之间的区别与联系:区别:session 对象是会话级内置对象,用于暂时保存用户的会话信息,生命周期为会话结束;而 application 对象是程序级内置对象,用于
9、长久保存多个用户的公共信息,生命周期为服务器关闭。联系:两者都是服务端保存用户信息的解决方案,都是用来保存用户信息的服务器端的存储空间。第五章1.File 类:用来获取文件本身的一些信息,例如文件所在的目录,文件的长度,文件读写权限等,不涉及对文件的读写操作。方法:public String getName() :获取文件名字public boolean canRead():判断文件是否可读public boolean canWrite():判断文件是否可写public boolean exists():判断文件是否存在public long length():获取文件的长度(字节)publi
10、c String getAbsolutePath()获取文件的绝对路径public String getParent():获取文件的父目录public boolean isFile():判断文件是否是一个正常文件,而非目录。2.使用字节流读写文件InputStream 类及其子类对象为字节输入流。OutputStream 类及其子类对象为字节输出流。FileInputStream 和 FileOutputStream 类BufferedInputStream 和 BufferedOutputStream 类3.使用字符流读写文件所有字符输入流类都是 Reader(输入流)抽象类的子类。所有字符
11、输出流类都是 Writer(输出流)抽象类的子类。FileReader 和 FileWriter 类filename= ”下载的文件名字 ” ”);第六章1.连接数据库的常用方式:JDBC,ODBC 桥接器和加载 Java 数据库驱动程序2.JDBC 基本功能的是:与数据库建立连接、提交 SQL 语句、处理查询结果。第七章1.JavaBean 是一种 Java 类。通过封装属性和方法称为具有某种功能或者处理某个业务的对象,简称 bean。2.不提倡大量的数据处理都用 Java 程序片来完成。在 JSP 页面中调用 bean,可有效地分离静态工作部分和动态工作部分。3.注意事项:类中必须提供两个
12、方法:getXxx() 用来获取属性 xxxsetXxx() 用来修改属性 xxx类中声明的方法的访问属性都必须是 public 的。类中声明的构造方法必须是 public、无参数的。4.bean 的有效期限scope 取值 page scope 取值 requestscope 取值 sessionscope 取值 application5.获取和修改 bean 的属性:getProperty 动作标记、setProperty 动作标记第八章1.JSP 技术不是 Java Servlet 技术的全部,只是它的一个成功应用。2.Java Servlet 技术的核心就是在服务器端创建能响应用户请求
13、的对象,被创建的对象习惯上称作一个 servlet 对象。3.编写 Servlet 类:init() 、service() 、doGet() 、doPost4.web.xml 文件的编写5.字节码文件的保存:与包名有密切关系6.可以通过表单向 servlet 对象提交数据7.可以通过超链接访问 servlet 对象8.重定向与转发第九章1.在 JSP 技术中, “视图” 、 “模型”和“控制器”的具体实现如下:模型(Model):一个或多个 JavaBean 对象,用于存储数据,JavaBean 主要提供简单的 setXXX()方法和 getXXX()方法,在这些方法中不涉及对数据的具体处理细
14、节。视图(View):一个或多个 JSP 页面,为模型提供数据显示,JSP 页面主要使用 HTML 标记和JavaBean 标记来显示数据。控制器(Controller)一个或多个 Servlet 对象没根据视图提交的要求进行数据处理操作,并将有关的结果存储到 JavaBean 中,没然后 Servlet 使用重定向方式请求视图中的某个 JSP 页面更新显示。1.编写俩个 JSP 页面:main.jsp 和 lader.jsp,讲俩个 JSP 页面保存在同一 Web 服务目录中。Main.jsp 使用 include 动作标记动态加载 lader.jsp 页面。main.jsp: lader.
15、jsp: 梯形面积: 2.请编写一个简单的 JSP 页面,显示大写英文字母表。3.编写 2 个 JSP 页面 inputString.jsp 和 computer.jsp,用户可以使用 inputString.jsp 提供的表单输入一个字符串,并提交给 computer.jsp 页面,该页面通过内置对象获取 inputString.jsp 页面提交的字符串,并显示该字符串的长度。inputString.jsp:computer.jsp: 字符串:的长度: 4.用户可以通过 JSP 页面输入一元二次方程的系数给一个 servlet 控制器,控制器负责计算方程的根,并讲结果存储到数据模型中,然后请
16、求 JSP 页面显示数据模型中的数据。(1) 模型 Equation.java: package moon.yourbean; public class Equation double a,b,c; String rootOne,rootTwo; boolean squareEquation; public void setA(double a) this.a=a; public double getA() return a; public void setB(double b) this.b=b; public double getB() return b; public void setC
17、(double c) this.c=c; public double getC() return c; public void setRootOne(String root) rootOne=root; public String getRootOne() return rootOne; public void setRootTwo(String root) rootTwo=root; public String getRootTwo() return rootTwo; public void setIsSquareEquation(boolean b) squareEquation=b; p
18、ublic boolean getIsSquareEquation() return squareEquation; (2)视图input.jsp: 输入一元二次方程的系数: 二次项系数 a:一次项系数 b:常数项 c:show.jsp: 一元二次方程的系数是: 二次项系数:一次项系数: 常数项: 是一元二次方程吗? 方程的两个根是:, (3)控制器HandleData.javapackage sun.yourservlet; import moon.yourbean.*; import java.io.*; import javax.servlet.*; import javax.servl
19、et.http.*; public class HandleData extends HttpServlet public void init(ServletConfig config) throws ServletException super.init(config); public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException Equation equ=new Equation();request.setAttribute(“
20、equation“,equ);double a=Double.parseDouble(request.getParameter(“a“); double b=Double.parseDouble(request.getParameter(“b“); double c=Double.parseDouble(request.getParameter(“c“); equ.setA(a);equ.setB(b);equ.setC(c); if(a!=0) equ.setIsSquareEquation(true); else equ.setIsSquareEquation(true);double d
21、isk=b*b-4*a*c; if(disk0) equ.setRootOne(“无实根“); equ.setRootTwo(“无实根“); else double root1=(-b+Math.sqrt(disk)/(2*a), root2=(-b-Math.sqrt(disk)/(2*a); equ.setRootOne(“+root1); equ.setRootTwo(“+root2); RequestDispatcher dispatcher=request.getRequestDispatcher(“show.jsp“); dispatcher.forward(request,response); public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException doPost(request,response);