web三层结构

JavaWeb经典三层结构
 


我们常说的三层结构是由JavaWeb提出的,也就是说这是JavaWeb独有的!


所谓三层是表述层(WEB层)、业务逻辑层(Business Logic),以及数据访问层(Data Access)。


(1)  WEB层:包含JSP和Servlet等与WEB相关的内容;


(2)  业务层:业务层中不包含JavaWeb API,它只关心业务逻辑;


(3)  数据层:封装了对数据库的访问细节;


IE浏览器向服务器发请求无非就是获取数据 服务器会交给相应的servlet来处理,servlet交给service来处理,
service会交给dao,dao专门与数据库交互获得数据,取出的数据用对象来封装,service调dao的方法,这样
dao通过返回值将获得的数据返回给service;这个时候service就拿到了javabean,service对数据进行一顿操作,
然后将操作的数据封装到另一个javabean中,通过方法的返回值,将结果返回给servlet,servlet将获得的数据
交给jsp,(比如说将javabean放到域里边,jsp从域里拿出javabean做显示),jsp显示执行,用户就可以看到要获取
的数据了;


为了将来便于维护,我们在层与层之间定义接口


ajax方式的请求能用jsp做响应吗?


JSP九大内置对象 request ,session ,pageContext ,application, Page, out ,config ,response ,exception;


//请求传过来的
final javax.servlet.http.HttpServletRequest request




javax.servlet.http.HttpSession session = null;
session = pageContext.getSession();




final javax.servlet.jsp.PageContext pageContext;
pageContext = _jspxFactory.getPageContext(this, request, response,
      null, true, 8192, true);


final javax.servlet.ServletContext application;
application = pageContext.getServletContext();

final java.lang.Object page = this


javax.servlet.jsp.JspWriter out = null;
out = pageContext.getOut();



final javax.servlet.ServletConfig config;
config = pageContext.getServletConfig();


//容器生成的
final javax.servlet.http.HttpServletResponse response




exception




1.反射使用的两个层次
1.编写通用的ResultSetHandler
2.工厂模式用于接收接口实现对象
 
2.JS如果被jsp外部引用, 那么在这个JS中能用 EL表达式 吗?


3.beanUtils.populate(,) 第二个参数必须是map吗?


4.ThreadLocal 其实是维护了一个map ,被所有线程共享, 每一个线程都可以往里边存数据(key ,value),
并且数据(key ,value)中的Key就是 当前线程, ps:线程与线程之间在这个map中存的数据隔离;


5.json在web层做浏览器与服务器之间的数据传递很流行 .这个json数据是对象的封装


6.就是: 第一步 : List list = new ArrayList();
第二步 : session.setAttribute("list",list);
第三步 : list.add(book);
第四步 : 从session中获取book可以获取到吗?

也就是说刚开始list放入session时,list是空的,然后我给list添加东西,那么最后这个session中的list
数据也更新了吗?
答,也更新了,也就是说,你可以从session中拿到list在拿到book,虽然我没有验证,但的确更新了,下面我试着
解释一下这个现象:因为所有的对象都是一个实体,我们平时的变量都是对对象实体的引用,这里的list只是对
new ArrayList()这个实体的引用(或者说是一个指针指向),当我们把list放入session时,实际是把 new ArrayList()
的指针list 放到session中了,这个时候其实session 其实是new ArrayList()的二级父指针,而list是ArrayList()的
一级父指针,所以两个都可以对它进行操作;


7.为啥改变了src属性,验证码图片会自动刷新?  浏览器动态监听src的改变吗?
答:

你可能感兴趣的:(javaweb)