当前位置:文档之家› JavaEE课堂笔记f

JavaEE课堂笔记f

1.Struts2在jsp页面中使用<s:iterator>标签实现对集合的迭代,其中var属性表示要迭代的集合对象。

<s:select>标签实现下拉列表的功能,其中listKey属性表示其生成的HTML代码option 标签的value,listValue属性表示用作字面显示的值。

<s:set>标签会定义一个新的Bean,而scope属性指定将这个Bean放到相应的作用域。

2.MVC设计模式包括Model(模型)、View(视图)和Controller(控制器)三个层。

Model 层一般是指Java Bean,View层一般是用jsp页面实现,Controller是控制跳转的,一般用Servlet 或相似功能的组件实现。

而Struts2框架的核心控制器是StrutsPrepareAndExecuteFilter过滤器。

3.Hibernate配置文件中包括了数据库连接信息、数据库方言、其他属性等信息,不包括数据库表和实体类的ORM信息。

在众多属性中,show_sql属性可以设置是否在控制台显示最终生成的SQL语句。

4.Struts2全局国际化,在创建资源文件后需要在struts.xml配置文件中添加对这些资源文件基本名的引用。

5.Spring的面向方面编程可以让我们将程序中涉及的分散的公用问题集中解决。

6.Http协议是一种无状态的协议,它不能记录用户的状态。

我们可以通过get和post方法发送数据,其中get方法对请求参数有长度的限制,而post方法没有。

7.j sp中的EL可以访问JavaBean中存储的数据,EL表达式包括requestScope、sessionScope、applicationScope、param、pageContext等隐式对象。

在Struts2中,EL表达式可以直接访问Action Bean中属性的值。

8.HQL和SQL语法相似,但HQL是面向对象的,而SQL是面向关系型数据库的。

HQL的关键字不区别大小写,而语句中的实体类名、对象名、属性名等都是区别大小写的,这一点和Java语言类似。

9.Servlet在加载后的生命周期分为实例化、初始化、服务和销毁四个过程。

10.JSP的<jsp:forward>标准动作能实现页面转发的功能。

11.Servlet中的PrintWriter对象可以输出信息,该类型的对象可以通过response.getWriter()方法取得。

12.DWR一个能帮助我们简化Ajax开发的开源框架,在使用时,需要在dwr.xml配置文件中为JavaScript脚本暴露相应的Java类。

13.在struts.xml配置文件中<result>标签用于配置要转向的下一个目标页面。

14.Hibernate将JDBC作了轻量级封装,使得Java程序员可以随心所欲的使用面向对象的编程思想来操纵数据库,但其本质上还是使用JDBC去和数据库进行交互。

15.SSH是JavaEE开发的经典搭配,Spring框架可以对其他框架进行整合,持久化层更可以有多种选择,除了Hibernate外,像MyBatis这样的开源框架也很受欢迎。

16在软件设计上Struts2没有跟Servlet API或struts有着紧密的耦合,因此在Struts2中可以不必使用Servlet API所提供的类和接口,但如果要使用,也可以通过多种方式实现(ServletActionContext类或实现相应接口)。

同时Struts2的Action类也不用必须继承或实现struts框架提供的任何类或接口。

17Servlet API中,HttpServletResponse接口的sendRedirect()方法可以将浏览器重定向到另一个URL。

而HttpServletRequest接口的getSession()方法可以取得本次会话的HttpSession类型的对象,HttpServletRequest接口的getParameter()方法可以获取客户端请求参数的数据。

18依赖注入(DI)是一种开发模式,可以解除或减轻各组件之间相互依赖,相互制约的关系。

1.简述Struts2的工作机制?用户请求Struts2内置的一些拦截器或用户自 定义拦截器用户编写的action 类,类似struts1中 的Action类似struts1中的forward内置的一些拦截器或用编写的action 类,类似中的Action Jsp/html 中的forward StrutsPrepareAndExecuteFilter 是Struts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter 会过滤用户的请求。

默认情况下,如果用户请求的路径不带后缀或者后缀以.action 结尾,这时请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求的处理。

当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后再到Action 。

与Struts1不同,Struts2对用户的每一次请求都会创建一个Action ,所以Struts2中的Action 是线程安全的。

响应2.如何使用Spring 简化了Hibernate 编码?封装了对应的增删改查,继承hibernateDaoSupport类。

3.简述hibernate中get()与load()区别(百度)get方法首先查询session缓存,没有的话查询二级缓存,最后查询数据库;反而load方法创建时首先查询session缓存,没有就创建代理,实际使用数据时才查询二级缓存和数据库。

hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,就抛异常;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。

4.简述使用Hibernate框架进行持久化操作的“三个准备”和“七个步骤”。

1.创建Congfiguration对象。

2.创建SessionFactory3.打开Session4.开始一个事务5.持久化操作save/updata/delete/find6.提交事务7.关闭session三个准备如下: 1.导入Hibernate库(jar包) 2.添加配置文件-- hibernate.cfg.xml3.添加实体类和映射文件5.简述你对Spring控制反转(IOC)的理解Spring通过一种称作控制反转(IoC)的技术促进了松耦合。

当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

而依赖注入是IoC的表现方式,所谓依赖注入就是指在运行期,由外部容器动态地将依赖对象注入到组件中。

6.简述你对MVC三层架构的理解。

MVC 是一种使用MVC(Model View Controller 模型-视图-控制器)设计创建Web 应用程序的模式:Model(模型)表示应用程序核心(比如数据库记录列表)。

View(视图)显示数据(数据库记录)。

Controller(控制器)处理输入(写入数据库记录)。

MVC 模式同时提供了对HTML、CSS 和JavaScript 的完全控制。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。

通常视图是依据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分。

通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

7.写出以下Action的struts.xml配置文件描述(注:请求为Test/Hello.action,返回页面为WebRoot根目录下的success.jsp)package com.yourcompany.action;public class HelloWorldAction{private String message;public String getMessage(){return message;}public void setMessage(String message){this.message = message;}public String onPlay() throws Exception{System.out.println(this.getMessage());return "success";}public String execute() throws Exception{System.out.println(this.getMessage());return "success";}}<package name=”p” namespace=”/Test” extends=”struts-default”><action name=” Hello” class=” com.yourcompany.action. HelloWorldAction” method=”{1}”> <result name=”success”>/success.jsp</result></action></package>8.现有MySQL数据库test里的一张产品表(product),表结构如下图:请完成ORM工作,写出该表相对应的实体类以及XML映射文件。

注:主键为自动递增。

private Integer proId;private String proName;private String proDesc;private double proPrice;<hibernate-mapping><class name="com.leonyip.mystore.entity.Project" table="test" catalog="product"> <id name="proId" type="ng.Integer"><column name="pro_id" /><generator class="native" /></id><property name="proName" type="ng.String"><column name="pro_name"/></property><property name="proDesc" type="ng.String"><column name="pro_desc"/></property><property name="proPrice" type="ng.String"><column name="pro_price"/></property><set name="emps" table="emp_pro_rel" inverse="true"> <key><column name="pro_id"></column></key></set></class></hibernate-mapping>。

相关主题