您的位置:首页 > Web前端 > JavaScript

JSP常见知识点

2015-06-13 20:15 561 查看
1、转发和重定向的区别是什么

转发是在项目内部资源页面跳转,转发是继续传递请求(效率高),转发是通过request实现,转发后地址栏不改变

request.getRequestDispatcher(“页面名”).forward(request,response);

重定向可以跳转到任何页面,重定向是新的请求(效率不如转发),重定向是通过response实现,地址栏会改变

response.sendRedirect(“页面名”);

request.setAttribute(“名字”,值);

response.sendRedirect(“xxx.jsp”);

注意:下一个页面无法取出request中存储的数据,因为是新的请求

2、http提交请求有哪两种方式,区别是什么?

get/post

区别:get可以在地址栏显示传递的数据(不安全),get有长度限制,只能传递文本数据,效率高于post

Post传递的数据不会在地址栏显示(安全),post无长度限制,能传递任何数据,效率低于get

Servlet中接收请求后一定会执行的方法是以下哪个(C)

A.doGet() B.doPost() C.service() D.init()

如果一个servlet冲存在doGet、doPost、service三个方法,那么只会执行service

3、Spring的核心思想有哪两个技术点

Spring核心思想:IOC、AOP

IOC:控制反转/依赖注入(DI),将对象之间的关系在编码外的配置文件中进行配置

AOP:面向切面编程设计,将项目中的共性问题抽离出来集中解决

4、Sql中声明变量的语法是什么?赋值有哪两种方式

declare @变量名 类型

Delare @name varchar(30)

Set @name = ‘jack’ 赋予固定值,同时只能给1个变量赋值

Select @name = ‘jack’ 可以给多个变量赋值,一般是将查询的结果赋值给某变量,如:

Declare @myCount int = 0;

Select @myCount=count(*) from 表

5、ORM是什么?Hibernate是一种什么技术

ORM:对象关系映射 将类和数据库的表进行映射关联,操作类对象时,自动根据映射去产生sql语句及jdbc代码

Hibernate是一种实现了ORM思想,封装了jdbc的一种数据库操作技术

6、Struts2的控制器分哪两种?

1)核心控制器(StrutsPreparedAndExecuteFilter)

它是一个过滤器,负责处理所有的请求

2)业务控制器(平时自己建立的XXXXAction类)

Struts2中的每个请求都会创建对应的Action实例

7、Struts2的Action如何完成配置(写出大概的框架例子即可)

<package name=”包名” extends=”struts-default” namespace=”访问的路径”>

<action name=”访问名” class=”包名.类名”>

<result name=”名字” type=””>页面</result>

</action>

</package>

页面返回的类型:

Dispatcher(默认,转发)

Redirect(重定向)

redirectAction(重定向到其他Action)

8、IOC是什么?代表什么意思,有哪两种注入方式?

IOC:控制反转/依赖注入(DI),将对象之间的关系在编码外的配置文件中进行配置(降低耦合)

Set注入

构造注入(时机更早一些)

<bean id=”emp” class=”com.scme.Employee”>

<property name=”age” value=”20” />

</bean>

以上property说明,Employee类中一定有一个setAge方法

9、AOP是什么意思,代表什么意思?有哪几种通知类型

AOP:面向切面编程设计,将项目中的共性问题抽离出来集中解决

Aop是面向对象的补充扩展,不是替代。Aop是横向的设计,面向对象是纵向

前置通知

后置通知

环绕通知

异常通知(拦截目标方法的执行)

AOP主要是通过”代理”设计模式实现,代理有两种方式:

1)>jdk动态代理(默认)

2)>cglib类代理方式

10、Hibernate中的对象有哪几种生命周期状态

瞬时(临时):刚new的对象

持久化:调用save、load、get等方法

游离:session.close session.clear session.evict

11、SSH中几个常用bean的注入方式是什么?如DataSource注入给谁。

DataSource-->sessionFactory-->Dao--->Service--->Action

当我们的Dao继承HibernateDaoSupport后,那么必须要注入sessionFactory

12、<jsp:useBean是什么意思,完成一个完整的写法例子,它的存储范围有哪几个

<jsp:useBean id=”对象名” class=”包名.类名” scope=”request” />

等价于在jsp中:

<%

类名 对象名 = new 类名();

%>

Scope代表该对象存在的范围

Page --当前页面范围有效

Request --转发后的下一个页面有效

Session --整个会话范围

Application ---整个项目范围(全局、最大)<网页的计数器>

13、Hibernate中cascade是什么意思,有哪几个取值

Cascade级联操作

取值:all save-update delete none

14、Hibernate中延迟加载的属性是什么?=true和=false什么意思,默认是什么

Lazy=”true” 延迟 -------默认

Lazy=”false” 不延迟(立即)

15、Hibernate中setFirstResult和setMaxResult是什么意思

setFirstResult(数字)---从第几条开始取,下标从0开始

setMaxResult(数字)---取多少条记录

setFirstResult(4), 从第5条开始取

setMaxResult(8), 取8条记录

16、Page、request、session、application的存储作用域分别是什么

Page --当前页面范围有效

Request --转发后的下一个页面有效

Session --整个会话范围(不同的客户端有不同的session)

Application ---整个项目范围(全局、最大)<网页的计数器> 不同的项目有不同的application

17、Struts2中的XXXAction中如何访问request、session、application对象

HttpServletRequest req = ServletActionContext.getRequest();

HttpSession session = req.getSession();

ServletContext application = ServletActionContext.getContext();

18、SSH中需要改变那些配置文件,分别改变那里是做什么用的?

如监听器:在那里配置,如何配置

Web.xml: Struts2的核心控制器和监听器

Struts.xml: 配置Struts2的属性和配置action

applicationContext.xml:配置对象之间的依赖关系

Hibernate.cfg.xml:配置hibernate的属性

实体类.hbm.xml:实体类和数据库表的映射信息

19、为了规范Struts中的Action写法,一般我们会实现哪个接口或者继承哪个类

Action接口

ActionSupport类

20、Servlet的生命周期是什么,分别在什么时候执行。

加载 --服务器启动时

实例化 ---第一次请求时

初始化(init) ---第一次请求时

服务(service--doGet/doPost) ---每次请求时

销毁(destroy) ---服务器停止时

Servlet完成后需要在web.xml中配置其访问路径,否则无法使用

<servlet>

<servlet-name>名字</servlet-name>

<servlet-class>包名.类名</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>名字和上面对应</servlet-name>

<url-pattern>/test</url-pattern>

</servlet-mapping>

那么要进入该servlet,则请求最后要提交的就是/test,如项目名是book,那么访问为:

http://ip:端口/book/test 即可访问该servlet

21、Jsp的执行原理是什么?为什么第二次访问jsp页面时比第一次访问要快

Jsp----翻译(转义)成java---编译成class,最终运行这个class,向客户端输出静态的html

因为jsp页面第一次访问时,需要转义和编译的过程,第二次就不需要了.

22、]>javaWeb中的MVC指什么,Model1时期时控制器是谁,Model2时期时控制器是谁

MVC:设计模式

Model 模型 javabean(实体类、Dao、service类)

View 视图(jsp)

Controller 控制器(servlet)

Model1:最早时期的javaweb应用,控制器jsp担任

Model2:目前,控制器servlet、Action

23、现在有班级表(ClassInfo)和学生表(StudentInfo),其中学生表中有一个claId为该学生所在的班级ID(外键),现在要查询出班级名称是”1403”的男同学信息,请完成sql语句(使用子查询)

Select * from StudentInfo where claId = (select claId from ClassInfo where claName = ‘1403’) and stuSex = ‘男’

注释:1403是班级的名称,只在班级表中,学生表中只有班级的id,并非班级名称。

24、Hibernate是一个对象关系映射框架,它是如何映射的(什么对应什么)?

类----表

属性----列

对象-----行记录

25、sessionFactory是一个重量级还是轻量级的对象,一般项目中创建几个?

重量级对象,一个项目中一个即可

Ssh中,由spring负责创建它,LocalSessionFatoryBean

26、Hibernate中inverse是什么意思,一般设置在哪个标签上,设置为什么值的时候效率高

inverse代表关系中谁作为主控方

一般设置在1方的<set标签上,设置为true的时候代表对方(多方)为主控方,效率高

27、Hibernate.cfg.xml是配置什么的?实体和表的映射信息配置在哪个配置文件中

配置hibernate的一些全局属性,如数据库连接、方言dialect、show_sql等

实体和表的映射信息存储在各自的 xxxx.hbm.xml文件中

28、Struts2中action请求处理方法一般返回的字符串,该字符串和那里的配置对应。它默认的返回类型是什么?有哪几种返回方式

在struts.xml中的<result name=”xxx” 中进行配置

默认是转发

Dispatcher

Redirect

redirectAction

29、如果jsp页面要导入标签库,则需要使用的指令是?其中uri、prefix代表什么意思

<%@ taglib uri=”标签的地址” prefix=”前缀” %>

C标签:

<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>

Struts标签:

<%@ taglib uri=”/struts-tags” prefix=”s” %>

30、Struts2的action是单例的还是每次请求都会创建action对象

Action是每次请求都会创建action对象

Struts1的action是单例的

Servlet也是单例的

31、Ajax 是一种什么技术,其中xmlHttpRequest的状态值有哪几种,分别是什么时候变化。在服务器端返回xml数据时,如何获取返回的信息xmlHttpRequest.responseXXXX什么获取

Ajax是一种页面无刷新技术

xmlHttpRequest负责整个ajax中的通信,发送请求接收数据

readyState有5个状态值:

0 刚创建

1 准备发送

2 已发送

3 接收数据中

4 接收完毕

32、http返回的状态吗分别代表什么意思

404--------资源找不到

200---------处理成功

500---------服务器报错

33、Webservice使用什么协议通信

SOAP协议

Webservice中包含了:xml/xsd soap wsdl

34、http访问时的默认端口号是什么?Tomcat的默认端口号是什么,可以改变吗?Sqlserver的默认端口号是什么?

80端口

Tomcat默认是:8080

Sqlserver默认端口:1433

35、客户端禁用Cookie时,如何实现会话跟踪

url重写

36、Session和Cookie分别存储在那里?

Session是存储在服务器端的信息

Cookie是存储在客户端

37、OGNL是struts2访问数据的语法,其中OGNL的根是什么

ValueStack

OGNL访问数据时都要加 #

38、在action中session是从哪里获取出来的,request如何获取

HttpServletRequest request =ServletActionContext.getRequest();

HttpSession session = request.getSession();//如果没有session则创建一个

HttpSession session = request.getSession(false);//如果没有session则返回null

Tomcat中session默认存活的时间:30分钟

可以在tomcat下conf中的配置文件中改成存活时间

也可以直接调用session的

session.setMaxAge(时间);-----秒

39、下列代码能够在下一个jsp页面中取出数据吗,为什么

request.setAttribute(“name”,”zhang”);

response.sendRedirect(“http://localhost:8080/servlet/MyServlt”);

下一个jsp是否能够取出request中存储的name属性

答:不能取出,因为重定向是一个新的请求

40、在servlet中如何获取表单提交请求中的数据,如文本框的数据,再如获取多个名字相同的checkbox中的值

String n = request.getParameter(“name”);

String[] as = requset.getParameterValues(“名字”);

41、C标签如何循环集合中的数据,写出一个简单的架构即可。Strtus2标签如何循环

<c:forEach items=”${集合}” var=”对象名” varStatus=”状态信息” >

</c:forEach>

<s:iterator value=”#attr.集合名” id=”对象名” status=”状态信息”>

</s:iterator>

42、Hibernate中的session常用的方法有哪些,作用是干什么

Session.save 保存对象

session.saveOrUpdate --增加或修改(根据对象的主键id)

Session.update

Session.get

Session.load

Session.delete

session.close

43、Hibernate中通过get和load都可以根据id查询一个对象,区别是什么?

get和load都会查询1级缓存

get是立即加载,如果没找到返回null

load是延迟加载,如果没找到报错

44、Html注释和jsp注释分别如何写,那个在客户端看不到(隐式的)?哪个效率高

Html注释:<!-- html注释,可以看到,效率低 -->

Jsp注释:<%-- jsp注释,客户端看不到,隐式效率高--%>

45、对xml文件进行限制有哪两种方式?

Dtd------------.dtd

Schema-------.xsd(限制要求更高)

46、Struts2中自定义类型转换器需要实现的接口、类分别是什么?

TypeConverter -----------接口

StrutsTypeConverter----------类

47、Sql中常用的聚合函数有那些,分别是干什么的

Sum 求和

Avg 平均

Max 最大

Min 最小

Count 统计行数

Select count(*) from 表

Select count(列) from 表 ---如果该列值存在为null,则不参与统计

48、下列代码运行结果是什么,为什么

tx = session.beginTransaction();

Customer c1=(Customer)session.load(Customer.class,new Long(1));

Customer c2=(Customer)session.load(Customer.class,new Long(1));

System.out.println(c1==c2);

tx.commit();

session.close();

true,第一次load会放入缓存中,第二次直接从缓存中取

49、Sql中排序时升序和降序的关键字分别是什么?

Asc----升序(默认)

Desc --降序

50、SQL中的索引有什么用?在哪些列上适合建立索引?

索引主要是为了加快查询速度。

1)该列警察被使用、排序、分组等。

2)该列不经常被修改

3)该列重复值不多

索引:

聚集索引,效率高,一个表中只能一个(主键就是聚集索引),索引的顺序和数据的物理顺序一致(拼音目录)

非聚集索引,效率低,一个表中可以多个(最多255个),索引的顺序和数据的顺序不一致(偏旁部首目录)

51、子查询如果用 > < = 引出来,那么子查询只能查询出多少值?如果用in 引出来,那么查询出多少值?

单个值 select * from 表 where 列 = (单个值查询)

In的话,可以多个,但是只能单列

52、sql中事务的作用是什么?Sql中事务用那些语句构成

事务是为了保证某个功能下的多条sql要么都成功,要么都取消

Begin tran --开始事物

Commit tran --提交事务

Rollback tran –回滚事务

53、存储过程的创建语法是什么,参数可以是什么类型,如何调用

Create proc up_名字(

参数列表

)

As

Begin

--存储过程主体

end

参数可以是输入参数、输出参数(要用output声明)

调用存储过程时,使用 exec ,如:

declare @flag int --声明输出参数

exec up_过程名 参数1,参数2,@flag output

print @flag ---上面的存储过程会将输出参数中进行赋值,作为返回值

54、sql中的变量分类,举例

Sql中变量分为全局变量和局部变量

全局变量,只能读取数据,不能声明,如:

@@error 上个语句错误号

@@identity 最后次插入标识列的值,如果没有,则为null

@@rowcount 上个增删改语句影响的行数

局部变量,自己声明的:

Declare @name varchar(30)

Set @name = ‘jack’

55、关于having

Select count(*) from 考试信息表

查询所有人考试的总次数

按人来查询每个人的总次数

Select count(*) from 考试信息表 group by 学生ID

查询考试次数在2次以上的人的id

Select 学生ID from 考试信息表 group by 学生ID having count(*) > 2

56、重载和重写

重载与重写的区别

序号

重载

重写

1

方法的名称相同,参数个数和类型不同

方法名称、参数列表和返回值类型与父亲完全相同

2

不要求方法的访问范围

子类中提供的重写方法的访问范围不能小于父类

3

应用在一个类的内部

应用在父子类继承关系中

重载:同一个类中,相同的方法名,不同的参数

重写:子类重写父类的方法,方法名、返回类型,参数都一样

56、HashMap

HashMap不能保证其中元素的顺序,HashMap的key和value都能为null ,HashMap使用键/值的形式保存数据,HashMap通过get(key)获取对应的值

57、泛型集合

泛型可以解决数据类型安全的问题,泛型消除了类型强制转换,泛型集合的效率比普通集合更高

57、抽象类和接口

抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。抽象类可以没有构造方法,但是一个类却可以实现多个接口;在抽象类中可以没有抽象方法,抽象类不能被实例化; 实现抽象类和接口的类必须实现其中的所有抽象方法,除非它也是抽象类。接口中的方法都不能被实现,必须在子类中重写;接口中不能有构造方法;接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值

58、面向对象的方法:继承、封装、多态

59、Java构造方法

构造方法没有返回类型;构造方法是类的一种特殊方法,它的方法名必须与类名相同; 构造方法的主要作用是完成对类的对象的初始化工作

60、java中的数据类型

不会改变的是:基本数据类型(8个),String类型

基本数据类型(8个):Int double float long char boolean short byte

61、java的修饰符:Private -- default ---protected---public

61、在浏览器输入http://localhost:8080/news/main/list.jsp,分别执行以代码后,打印结果

System.out.println(request.getContextPath()); 打印结果:/news

System.out.println(request.getServletPath()); 打印结果:/main/list.jsp

System.out.println(request.getRequestURL());

打印结果:http://localhost:8080/news/main/list.jsp

System.out.println(request.getRequestURI()); 打印结果:/news/main/list.jsp

URL:带http的全路径

URI:项目名/页面名

62、WEB

Web服务的数据传输标准是XML

Webservice通信协议:SOAP

63、XMLHttpRequest的readyState属性值:

0未初始化,刚创建时

1准备发送

2send方法调用,已发送

3正在接收,未完毕

4已经响应完毕

Status的状态信息为200成功、404资源未找到、500服务器报错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: