JavaWeb基础与SSH框架知识总结

时间:2024.3.19

一、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种,相互转换

? 分支、循环

? 方法

? 形参、实参、返回值、返回值类型

? 递归调用

更多相关推荐:
java基础知识总结(超级经典)

Java基础知识总结超级经典写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技...

java基础知识总结(超级经典)1

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

Java基础知识总结(超级经典)

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

Java基础知识总结

JAVA基础知识总结第一章Java入门1java诞生19xx年5月23日Sun公司发布了jdk10版本作者JamesGoslingJAVAME微型版手机软件开发JAVASE标准版桌面应用程序JAVAEE企业版企...

java基础知识总结(经典)

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java基础知识总结(经典)

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java基础知识总结

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java基础知识总结(经典)

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java基础知识总结(超级经典)

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java基础知识总结(经典)

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

Java基础知识总结

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java基础知识任务(数组)2

知识点:数组的声明PPT24-33数组的应用常用字符串方法复习:循环结构讲解作业2课堂任务:任务一、1.下面关于数组定义语句不正确的是(A)。A.floatf[]=new{2.4f,3.5f,5.7f,7.9f…

javaweb基础知识总结(25篇)