一、JSP知识:
1.用户第一次请求JSP页面时,JSP引擎会转译该JSP文件为Servlet文件(.java),并编译该文件,生成字节码文件(.class)。最后将一个HTML页面发送给客户端。用户再次请求JSP页面时,JSP引擎会直接运行字节码文件,将HTML页面发送给客户端。
2.静态网页服务器返回的HTML文件是事先储存好的,动态网页服务器返回的HTML文件是程序生成的。静态网页文件中不允许有Java代码,动态网页文件中允许有Java代码,也允许有HTML标记。
3.Apache是一种网页服务器,支持的技术有Perl、python、Tcl、PHP。
IIS是微软提供的互联网信息服务,一般用于支持ASP、ASP.NET、PHP等技术。
Tomcat用于支持JSP技术。
WebLogic用于支持JSP技术。
4.Tomcat服务器的默认端口是8080。
IIS服务器的默认端口是80。
5.HTML文件必须由<html>开头</html>结尾。
文档头信息包含在<head>与</head>之间。
<head>包含的五种标签。<TITLE>、<META>、<SCRIPT>、<STYLE>、<LINK> Title meta link style script
6.Java的页面元素有哪些?语法是什么? HTML元素 指令 表达式 Java片段 注释 声明 动作 <%@ %> <%= %> <% %> <%-- --%> <%! %> <jsp:include>
7.Include指令允许导入其他的文件,但必须保证与前页面集成为一个完整的JSP页面。 8.JSP的内置对象有几种?分别是什么?
共有9种: request对象,response对象,pageContext对象,session对象,application对象,out对象,config对象,page对象,exception对象
9. JSP的作用域。pageContext request session application
10.out.print和out.println
11.Post提交和get提交
12.Request获取页面提交过来的参数或者Form表单信息的方法。
13.JavaBean类必须是非抽象的公共类,属性必须为私有,但可通过公有方法访问。JavaBean的属性可以和表单的控件名称很好的耦合,得到表单提交的参数。
14.本机地址为:localhost或者127.0.0.1 test a.jsp music-mp3.mp3
15.绝度路径是文件名的完整路径;相对路径是指相对当前网页文件名的路径。
16.HTML加入一些JSP元素就可以构成一个JSP页面。
17.Jsp:include动作标记 和include指令的区别
include指令是指把其它页面的JAVA代码(源码)加进来,跟本页面的代码合并在一起,相当于把源码从那个页面复制到本页面中来,然后再编译。所以变量可以共用。并用由于本页面编译时已经包含了别的文件的源码,所以以后其它页面更改时,本页面并不理会,因为已经编译过了。
<jsp:include>动作是指两个页面的代码运行完以后,再把包含的那个页面运行后的HTML结果页面加到本页面运行后的HTML结果页面中来。所以变量不能共用。
18.jsp:param动作标记不能单独使用,必须作为jsp:include、jsp:forward标记等的子标记使用,并为它们提供参数。
19..JSP页面是在服务器端执行的,用户得到的是生成的结果页面。
20.重定向和转发传递参数的方式。
转发:request.getRequestDispatcher("apage.jsp").forward(request,response); 重定向:response.sendRedirect("apage.jsp");
21.同一个客户在同一个Web服务目录中的session对象是相同的,在不同的Web服务目录中的session对象是不相同的。
22.application对象对所有用户都是共享的,任何对它的操作都会影响到所有的用户。
23.布置JavaBean须在Web服务目录的WEB-INF\classes子目录下建立与包名对应的子目录,并将字节文件复制到该目录。
24.Rs的操作。ResultSet结果集,每一次rs可以看到一行,要在看到下一行,必须使用next()方法移动当前行
25.JSP有哪些内置对象?作用分别是什么?
1、application对象代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息。
2、config对象允许将初始化数据传递给一个JSP页面。
3、Exception对象含有只能由指定的JSP错误处理页面访问的异常数据。
4、Out对象代表提供输出流的访问。
5、Page对象代表JSP页面对应的Servlet类实例 。
6、PageContext对象是Jsp页面本身的上下文,它提供唯一一组方法来管理具有不同作用域的属性。
7、Request对象提供对Http请求数据的访问,同时还提供用于加入特定请求数
8、Response对象允许直接访问HttpServletResponse对象 。
9、Session对象可能是状态管理上下文中使用最多的对话。
26.JSP有哪些动作?作用分别是什么?
<jsp:param>操作被用来以“键—值”对的形式为其他标签提供附加参数信息。 <jsp:include>操作允许在请求是在现成的JSP页面里包含静态或者动态资源。
<jsp:forward>操作允许将请求转发到另一个JSP、servlet或静态资源文件。 <jsp:useBean>标签用来在JSP页面中创建一个JavaBean实例并指定他的名字以及作用范围。
<jsp:setProperty>此操作和setBean一起协作,用来设置JavaBean的属性。 <jsp:getProperty>操作是对<jsp:setProperty>操作的补充,用来访问一个Bean的属性。
<jsp:plugin>用来产生客户端浏览器的特别标签,可以使用它来插入Applet和JavaBean。
27.编写程序login.htm、check.jsp、success.jsp。做一用户登录界面login.htm,登录信息包括用户名、密码。然后提交到check.jsp进行验证,若用户名为admin,密码为123,就跳转到success.jsp,并提示“欢迎登录”,否
则跳转到login.htm。
login.htm
<form action=”check.jsp”>
</form>
Check.jsp
<%
String name = Request.getParaxxxxx;
String pass = xxxxxx;
If(name.equals(“admin”) && pass.equals(“123”)){
Response.sendRedrect(“success.jsp”);
}else{
Response.sendRedrect(“login.htm”);
}
%>
Success.jsp
欢迎登陆
28.使用<jsp:setProperty>动作标记可以在JSP页面中设置Bean的属性,但必须保证Bean有对应的setXxx
29 NumberFormatException
30 server.xml可以更改默认网站目录和端口。\
31 conn=DriverManager.getConnection(uri,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery("select * from book");
生成可上下滚动的结果集。数据库中表数据变化时结果集中数据同步更新
32 url重写可以把session对象的id作为url参数传带过去,可以使用request对象的encodeURL(“”)。
33表单信息的验证不但能放在服务器端执行,还能放在客户端执行。
34.网页中只要使用gb2312编码还是会出现中文乱码。
35
在JSP页面输出九行九列的表格,页面效果如下图所示:
For(int i=0;i<9;i++){
<tr>
For(int j=0;j<9;j++){
<td> i*j<td></td>
}
</tr>
}
</table>
下面不属于JSP内置对象的是()
A)out对象 B)respone对象 C)application对象 D)page对象 正确答案是无选项。 选择D
二、SSH框架
1 三层结构:应用层、业务逻辑层、数据访问层。
MVC:视图层、控制层、模型层。
应用层负责 页面展示和控制转发
业务逻辑层负责 业务逻辑的描述
数据访问层负责 数据的增删改查操作
视图层负责 页面展示
控制层负责 接收数据、调用业务逻辑处理数据、转发。
模型层负责封装数据访问代码、实体类和业务逻辑代码。
2 执行HQL查询 返回的是List
3 Criteria c = session.createCriteria(User.class);
4 SessionFactory 是重量级对象,对应一个数据源,一般只创建一个对象。 项目中如果出现多个数据源,可以创建多个SessionFactory,每一个SessionFactory对应一个数据源。SessionFactory 没有load方法。
5 Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用《Set》和 <one-to-many> XXX 映射orders属性。
6 <set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取save-update
7 Session的方法。
8 session.load 根据相同的Id返回地址相同的对象。
9 持久化层,对象分为哪些状态
(1) 临时状态(transient):刚刚用new语句创建,还没有被持久化,不处于Session的缓存中。处于临时状态的Java对象被称为临时对象。 (2) 持久化状态(persistent):已经被持久化,加入到Session的缓存中。处于持久化状态的Java对象被称为持久化对象。 (3) 游离状态(托管状态)(detached):已经被持久化,但不再处于Session的缓存中。处于游离状态的Java对象被称为游离对象。
10 POJO 是Plain Old Java Object ,它的作用是使用普通的Java对象映射数据库字段。
11 ORM 对象关系映射。使用它的好处就是能进行关系对象的映射。
12 已知某个实例的持久化标识,你可以使用Session的XX方法来获得? 13 HQL语句支持聚合函数如:avg(?) count(?) 但是不支持count(?) 14 Hibernate 中 数据库方言是必须要写的,它对应每个数据库,主要用于生成对应的SQL语言。每一个数据库都是不同的方言,没有通用的。
15 Hibernate映射文件 (注意不是配置文件)包括了:主键生成策略、属性数据类型、对应的数据库、数据库表、字段等信息
16 HQL语句查询的是配置的映射类。比如:from User 而不是对应的表名 from users
17 Spring是一个轻量级Java EE 框架 它主要包含:依赖注入模式、AOP模式和声明式事务。
18 Spring的配置文件中数据源的常用类是BasicDataSource
Session工厂常用的类是LocalSessionFactoryBean
19 Action接口定义的字符串常量有:
20 所有的控制器都需要在XXX中配置?
21资源文件的后缀名为?
22 Ajax技术体系的组成部分:XMLHttpRequest、DOM、XML、JavaScript 23 XMLHttpRequest有?个返回状态值。
24 Struts2使用过滤器为核心。
25 冒泡排序。
第二篇:Java基础知识总结
Java总结
标识符
? Java对各种变量、方法和类等要素命名时使用的字符数列称为标识符。
? 凡是自己可以起名字的地方都叫标识符,都遵循标识符的规则
? Java标识符命名规则:
? 标识符由字母、下划线“__”、美元”$”或数字组成
? 标识符应以字母、下划线、美元符开头
? Java标识符大小写敏感,长度无限制
? 约定俗成:Java标识符选取因“见名知意”且不能与Java语言的关键字重名
关键字
? Java中一些赋以特定的含义,用做专门用途的字符串称为关键字(keyword)。
? 大多数编译器会将关键字用特殊的方式标出
? 所有Java关键字都是小写英文。
? goto 和const虽然从未使用,但也作为被Java关键字保留。
Java常量
? Java的常量值用字符串表示,区分为不同的数据类型。
? 如整型常量123
? 实型常量3.12
? 字符常量?a?
? 逻辑常量true,false
? 字符串常量“helloword”
? 注意:区分字符串常量和字符常量
? 注意:“常量”这个名词还会用在另外其他语境中表示值不可变的变量
? 参见final关键字
Java变量
? Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
? Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式:
? type varName[=value] [{,varName [=value]}]
? 例如:
? int I = 100;
? float f = 12.3f;
? double d1,d2,d3 = 0.123;
? String s = “Hello”;
? 从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用
Java变量的分类
? 按被声明的位置划分:
? 局部变量:方法或语句块内部定义的变量
? 成员变量:方法外部、类的内部定义的变量
? 注意:类外部(与类对应的大括号外面)不能有变量的声明
? 按所属的数据类型划分:
? 基本数据类型变量
? 引用数据类型变量
Java局部变量与成员变量
? 方法体内部声明的变量(包括形参)称为局部变量:
? 方法体内部是指与方法对应的大括号内部
? 在方法体外,类体内声明的变量成为成员变量
? public void method(){
? int i;
? int j = i+5; //编译出错,变量i还未被初始化
? double d = 3.14;
? Dog dog;
? Dog = new Dog(22,1964);
? }
? 注:以上程序面前还不能编译
Java基本数据类型
? Java中定义了4类8种基本数据类型
? 逻辑型—boolean
? 文本型---char
? 整数型---byte,short,int,long
? 浮点数型---float,double
逻辑型boolean
? boolean类型适于逻辑运算,一般用于程序流程控制。
? boolean类型数据只容许取值true或false,不可以0或非0的整数替代true和false,这点和C语言不同。 字符型char
? Char型数据用来表示通常意义上“字符”
? 字符常量用单引号括起来的单个字符,例如:
? Char eChar = ?a?; char cChar = ?中?
? Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示,例如:
? Char c1 = ?\u0061?;
? 注:Unicode是全球语言统一编码
? Java语言中还允许使用转义字符?\?来将其后转变为其他含义,例如:
? Char c1 = ?\n?; //?\n?代表换行
? 补充:2进制,10进制,16机制之间的转换
? 1101 ---1*1 + 0*2 + 1*4 + 1*8
? 13 ---1 + 4 + 8 --- 1101
? 1101 --- D
整数类型
? Java各整数类型有固定的表示范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移
植性。
? Java语言整型常量的三种表示形式:
? 10进制整数:12 -314 0。
? 8进制,要求以0开头,如:012。
? 16进制,要求0x或0X开头,如:0x12
? Java语言的整型常量默认为int类型,声明long型常量可以后加?l?或?L?,如:
? int i1 = 600; long l1 = 888888888888888L;//必须加L否则出错
浮点类型
? 与整数类型类似,Java浮点类型有固定的表示范围和字段长度,不受平台影响。
? Java浮点类型常量有两种表示形式:
? 10进制形式,例如:3.14 312.0
? 科学记数形式:3.14e2 3.14E2
? Java浮点数默认为double类型,如要声明一个常量为float类型,则需要在数字后面加f或F
? double d = 12323.6; float f = 12.3f;必须加f否则出错
基本数据类型转换
? Boolean类型不可以转换为其他的数据类型
? 整型,字符型、浮点型的数据在混合运算中相互转换,转换时遵循以下原则:
? 容量小的类型自动转换为容量大的数据类型:数据类型按容量大小排序为:
? Byte,short,char->int ->long ->float -> double
? Byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型
? 容量大的数据类型转换为为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或
溢出:使用时格外注意。
? 有多种类型的数据混合也算时,系统首先自动的将所有数据类型转换为容量最大的,然后在进
行计算
? 实数常量(如:1.2) 默认为double
? 整数常量(如:12)默认为int
运算符
? Java语言支持如下运算符:
?
?
?
? 算术运算符:+、-、*、/、%、++、-- 关系运算符:>、<、>=、<=、==、!= 逻辑运算符:! 、&、|、^、&&、|| 位运算符:&、|、^、~、>>、<<、>>>
? 赋值运算符:=
? 扩展赋值运算符:+=、-=、*=、/=
? 字符串连接运算符:+
逻辑运算符
逻辑运算:!--逻辑非 &--逻辑与 |--逻辑或 ^--逻辑异或 &&--短路与 ||--短路或
赋值运算符与扩展赋值运算符
? 赋值运算符(=)
? 当”=”两侧数据类型不一致时,可以适用默认类型转换或使用强制类型转换原则进行处理
? long m = 100; int n = (int)m
? 注意:可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只
要不超出其表示范围:
? byte b = 12; char c = 100;
? byte bb = 256; short s = -32769
字符串连接符
? “+”除用于算术加法运算外,还可以对字符串进行连接操作
? int id = 800 + 90
? String s = “Hello” + “World”;
? “+”运算符两侧的操作数中只要有一个字符串类型,系统自动将另一个操作数转换为字符串然后再进行
连接。
? int c = 12;
? System.out.println(“c=”+c);
? 当进行打印时,无论任何类型,都自动转为字符串进行打印
? System.out.println(c);
三目条件运算符
? 三目运算符,语法格式:
? X ? y : z
? 其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达
式y的值,否则整个运算结果为表达式z的值。
语句
? 条件语句—根据不同条件,执行不同语句
? if
? if…else
? if…else if
? if…else if…else if…else
? switch
? 循环语句—重复执行某些动作
? for
? while
? do…while
if语句
?
?
?
? if if…else… if…else if… if…else if…else if…
? if…else if…else if…else
? 只有一句需要执行的语句时,可以省略{}
for循环语句
? for语句为如下形式:
? for(表达式1; 表达式2; 表达式3){ 语句;……}
? 执行过程
达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false
? for语句中三个表达式都可以省略
while & do while语句
? while语句为如下形式:
? while(逻辑表达式){语句……}
? 执行过程:先判断逻辑表达式的值。若=true则执行其后面的语句,然后再次判断条件
并反复执行,直到条件不成立。
? do while语句为如下形式:
? do{语句…} while(逻辑表达式); ? 首先计算表达式1,接着执行表达式2,若表达式2的值=true,则执行语句,接着计算表
? 执行过程:先执行语句,再判断逻辑表达式的值,若为true,再执行语句,否则结束循
环。
break & continue语句
? break在循环体中用于强制退出循环,不再执行循环中剩余的部分
? continue在循环体内,用于终止当前的循环,返回到循环的开始处,接着开始新的一次循环。 switch语句(条件语句补充)
? switch(){
case xx:
….
case xx:
….
default:
….
? }
? 小心case穿透,推荐使用break语句
? 多个case可以合并到一起
? default可以省略,但不推荐省略
? 在switch语句里的选择值只能是字符或是常量。
方法
? Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:
? [修饰符1,修饰符2…]返回值类型 方法名(形式参数列表){}
? 形式参数:在方法调用时用于接收外界输入的数据
? 实参:调用方法时实际传给方法的数据
?
?
?
? 返回值:方法在执行完毕后返回给调用它的环境的数据。 返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void Java语言中使用下述形式调用方法:对象名.方法名(实参列表) 实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配
? Return语句终止方法的运行指定要返回的数据
? Java中进行函数调用中传递参数时,遵循传递的原则:
? 基本类型传递的是该数据本身。引用类型传递的是对对象的引用,而不是对象本身
递归调用
? 递归调用指在方法执行过程中出现该方法本身的调用:
总结
? 标识符
? 不用记规则,动手
? 关键字
? 局部变量vs成员变量
? 变量作用域
? 内存布局
? 基础类型变量
? 4类8种,相互转换
? 分支、循环
? 方法
? 形参、实参、返回值、返回值类型
? 递归调用