复习答案.txt

来自「Java大部分的基础知识,EJB3,EJB2,WEBSERVICE,SOAP,J」· 文本 代码 · 共 870 行 · 第 1/3 页

TXT
870
字号
基础
	异常处理的关键字及作用
		try:产生异常
		catch:处理异常
		finally:不管有没有异常必执行
		throws:在方法声明处声明一个异常,调用者必须对这个异常进行处理
		throw:在方法内抛出一个异常
	抽象类与接口的区别
		一个类只可以继承一个抽象类
		抽象类即可有方法的实现又可以有方法声明
		当功能需要累积时,用抽象类

		一个类可以实现n个接口
		接口只提供方法的声明不提供方法的实现阶段
		当定义一个标准,功能不需要累积时用接口	
	final、finally、finalize的区别
		final:不可变
		finally:异常处理中,有没有异常必执行
		finalize:是类级的一个方法,当虚拟机回收实例前执行
技术
	jdbc的核心类及作用
		DriverManager:得到连接
		Connection:真实的数据连接,可以产年PreapredStatement
		PreparedStatement:执行sql
			executeUpdate:dml
			executeQuery:dql
		ResultSet:结果集
			一行
			if(rs.next())
			{
			}
			while(rs.next())
			{
			}
	如何实现从oracle数据库取一行
		Class.forName("Oracle.jdbc.driver.OracleDriver");
		Connection con=DriverManage.getConnection("jdbc:oracle:thin:@localhost:1521:accp","uid","pwd");
		PreapredStatement ps=con.prepareStatement("select * from customer where customerName=?");
		ps.setString(1,"张三");
		ResultSet rs=ps.executeQuery();
		Customer customer=new Customer();
		if(rs.next())
		{
			customer.setCustomerName(rs.getString("customerName"));	
		}		
	如何实现一个servlet
		类:
		public class MyServlet extends HttpServlet
		{
			//如果超链或表单的method=get时触发
			//信息量少,不安全,因在http请求的头
			public void doGet(HttpServletRequest request,HttpServletResponse response)
			{

			}
			//表单的method=post时触发
			//信息量大,安全,因在http请求的正,一般用这种方法
			public void doPost(HttpServletRequest request,HttpServletResponse response)
			{

			}			
		}
		在web.xml文件中配置
		<servlet>
			<servlet-name>myservlet</servlet-name>
			<servlet-class>aa.MyServlet</servlet-class>
		</servlet>
		<servlet-mapping>
			<servlet-name>myservlet</servlet-name>
			<url-pattern>/myservlet</url-pattern>
			<param>
				<param-name>a1</param-name>
				<param-value>@@@@@@@@@@@@</param-value>
			</param>
		</servlet-mapping>		
	servlet的核心类、作用、最重要的方法
		HttpServletRequest:得到客户的请求个信息
			String temp=request.getParameter("表单域名")
			String temp[]=request.getParameterValues("表单域名");
			request.getSession();
			--转发,在下个页面中保留本页面request,response
			request.getRequestDispatch("a.jsp").forward(request,response);

			request.setAttribute("属性名",对象)
			request.getAttribute("属性名")
		HttpServletResponse:向客户响应信息
			--跳转,在下个页面中不保留本页面request,response
			response.sendRedirect("a.jsp");//跳转到下一个页面
			PrintWriter pw=response.getWriter();//向客户打印一个脚本
		HttpSession:一个用户多个页面共享同一变量
			session.setAttribute("属性名","对象");
			session.getAttribute("属性名");			
		ServletContext:全局变量,多个用户多个页面共享同一变量
			servletContext.setAttribute("属性名","对象");
		ServletConfig:一个servlet的配置
			servletConfig.getParameter("a1")
	servlet的生命周期
		init
		doGet/doPost
		destroy
	servlet的体系结构
		Servlet接口
		GenericServlet:通用的servlet,适合于所有的协议
		HttpServlet:适合于Http协议
		自定义 extends HttpServlet
		{

		}
	过滤类的作用
		public class MyFilter implements Filter
		{
			public void doFilter(HttpServletRequest request,HttpServletResponse response,Filter filte)
			{
				request.setCharactorSet("utf-8");
				filter.doFilter(request,response);//给真正的处理者
				System.out.println("aaaaaaaaaaaaaaa");
			}
		}

		<filter>
			<filter-name>code</filter-name>
			<filter-class>aa.MyFilter</filter-class>	
		</filter>
		<filter-mapping>
			<filter-name>code</filter-name>
			<url-pattern>/*.do</url-pattern>
		</filter-mapping>
	转发、跳转、提交、超链的区别
		转发:运行在服务端,下一页面保留当前页面的request、response
		跳转:运行在服务端,下一页面不保留当前页面的request、response

	
		提交:运行在客户端,向服务器发送请求,提交表单域的内容
		超链:运行在客户端,向服务器发送请求,提交超链信息
	jsp中的九大内置对象、作用、方法
		request:HttpServletRequest
		response:HttpServletResponse
		session:HttpSession
		application:ServletContext
		out:向客户端打印文本
		pageContext:当前jsp页面的上下文环境,主要用在自定义标签,可在得到其他的所有内置对象
			pageContext.getSession();
			pageContext.getOut();
			pageContext.getApplication();
			pageContext.forward();//转发到下一个页面
		exception:错误页面的异常
			<%@page contentType="text/html;charset=utf-8" isErrorPage="true"%>
		page
			当前jsp页面对应的servlet
		config
			当前jsp页面对应的servlet的ServletConfig
	jsp的脚本及作用
		<%%>:java代码
		<%=%>:表达式
		<%!%>:声明,声明一个类级的方法或属性
		<%----%>:注释,在服务端不执行并不返回给客户
		<!--
			<%%>
		-->:<%%>的内容在服务端执知并返回给客户端,客户端不解析
	jsp的指令及作用
		<%@page contentType="text/html;charset=utf-8" language="java"%>
		<%@taglib uri="" prefix="html"%>
		<%@include file="a.jsp"%>:在编译时将两个jsp合在一起生成源码,
				再生成class文件执行,所以主页面与从页面变量不同重名。
	jsp的动作及作用
		<jsp:useBean id="" class="" scope=""/>
			在scope中找名称是id的对象,如果有用已有的,
			如果没有实例一个新的,其名称是id对应的名称
		<jsp:setProperty name="名称" property="属性名" value="值"/>
		<jsp:getProperty name="名称" property="属性名"/>
		<jsp:forward page="a.jsp"/>:转发		
		<jsp:include page="a.jap"/>: 调用另一个jsp页面,将执行得到的html文本与当前jsp页面生成的文本合在一起。
			是一种调用关系,变量名可以重名。
	jsp是不是一个servlet:是
	如何用EL语言打印某个作用域的变量
		${requestScope.对象名.属性名}	
	jstl的遍历如何实现
		<c:foreach items="${sessionScope.对象名}" var="一个对象">
		</c:foreach>
	jstl如何实现判断
		<c:if test="条件">
		</c:if>
		<c:choose>
			<c:when test="条件">
			</c:when>
			<c:otherwise>
			</c:otherwise>
		</c:choose>
	简述设计模式的原则及目的
		原则:
			增加开发,修改关闭
			面向接口或抽象类编程
		目的:
			可扩展
			可维展
	简述单例模式(singleton):整个虚拟机中只有一个实例
		懒汉式:
			用时才得到实例
		饿汉式:
			加载类时实例化一个实例
		特点:
			构造函数是私有
			实例属性名私有、静态
			得到实例的方法公有,静态		
	简述模板模式(template):父类提供抽象方法及具体方法,抽象方法由子类实现,父类的具体方法为子类
			实现的抽象方法提供相关服务,公开的是子类的方法。		
	简述工厂模式:(simplefactory)
		角色:
			工厂	
			抽象产品
			具体产品
		作用:
			通过工厂实例化一个具体产品,返回一个抽象产品,实现了部分的开闭原则,	
			增加一个产品时,不用修改客户端,只修改工厂,如果在工厂中用类的返射
			就只改配置文件,不用修改工厂。
	简述代理模式(静、动)
		角色:
			接口
			真实对象
			代理对象
		作用:
			代理与真实对象实现了同一接口并将真实对象作为代理的一个属性。
			向客户端公开的代理,当客户端调用代理的方法时,代理调用真实对象的方法,	
			在调用真实对象的方法之前和之后可以做一些处理。		
		动态代理:不用写代理类,虚拟机根据真实对角实现的接口产生一个类,通过
			类实例化一个动态代理,在实例化动态代理时将真实对象
			及处理类注入到动态代理中,向客户端公开的是动态代理,
			当客户端调用动态代理方法时,动态代理根据类的返射得
			到真实对象的Method,调用处理类的invoke方法,将动态代理、
			Method、方法参数传与invoke方法,invoke方法在唤
			起method方法前或后做一些处理。		
	简述观察者
		角色:
			观察者(老鼠)
			被观察者(猫)
		实现:
			将观察者聚集到被观察者,当被观察者的状态改变时通知所有的观察者。
		应用:
			awt的事件处理模型
	简述架构设计的原则
		上层依赖于下层,尽量减少下层对上层的依赖,层与层之间通过接口相互通信。
	简述页面、业务层、dao层、持久层的作用及实现
		总体说明:
			页面:strutsMVC及请求处理过程
			业务层:处理客户的一次操作
			dao:让业务层与持久层强制解藕,当持久层了,对业务层没有任何影响。
			持久层:hibernate jdbc ibatis
		具体实现:
			页面:struts MVC
			业务层:
				IFacade
				Facade
				FacadeFactory
			dao层:
				Dao接口
				DaoImpl:实现
				DaoFactory:产生具体的dao实例,返回dao接口
				AbstactFactory:产生具体的daoFacatory实例,返回AbstractFactory,
					用AbstractFactory代表具体的daoFactory,产生
					具体dao实现,返回dao接口。			
	如何通过oracle实向分页处理,在java中怎样调用
		--oracle的实现
		create or replace package myPack
		is
			c_type is ref cursor;
			procedure getPage(p_sql varchar2,pageSize number,currentPage number,c1 out c_type)	;
		end;

		create or replace package body myPack
		is
			
			procedure getPage(p_sql varchar2,pageSize number,currentPage number,c1 out c_type)
			is			
				v_sql varchar2(2000);
			begin
				v_sql:='select * from ('||p_sql||') where rownum<='||currentPage*pageSize;
				v_sql:=v_sql||'  minus  ';
				v_sql:=v_sql||'select * from ('||p_sql||') where rownum<='||((currentPage1-)*pageSize);
				open c1 for v_sql;
			end;		
		end;

		--java调用oracle
		CallStatement cs=con.preCall("call {myPack.getPage(?,?,?,?)}");
		cs.setString(1,"select * from customer");
		cs.setInt(2,2);
		cs.setInt(3,2);
		cs.registerOutParameter(4,OracleTypes.cursorType);
		cs.execute();
		ResultSet rs=cs.getObejct(4);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?