java web的介绍
2016-12-09 18:06
246 查看
一.java web发展过程
1.servlet 2.jsp 3.jsp model1(model和view混用) 4.jsp model25.spring 6.springmvc/struts2/webx 7.hibernate/mybatis
二 servlet
如图:1.HttpServlet继承自GenericServlet,GenericServlet实现了Servlet.
tomcat 容器接收到请求后,调用Servet.servce()->GenericServlet.service()->HttpServlet.service(ServletRequest, ServletResponse)->
HttpServlet.service(HttpServletRequest, HttpServletResponse)->HttpServlet.doGet(HttpServletRequest, HttpServletResponse)
2.springmvc的DispatcherServlet继承了FrameworkServlet,FrameworkServlet继承自HttpServletBean,HttpServletBean继承了HttpServlet.所以1的请求进入org.springframework.web.servlet.FrameworkServlet.doGet(HttpServletRequest, HttpServletResponse)->org.springframework.web.servlet.FrameworkServlet.processRequest(HttpServletRequest, HttpServletResponse)->org.springframework.web.servlet.FrameworkServlet.doService(HttpServletRequest, HttpServletResponse)->
org.springframework.web.servlet.DispatcherServlet.doService(HttpServletRequest, HttpServletResponse)
3.在DispatcherServlet的doService方法中,进入org.springframework.web.servlet.DispatcherServlet.doDispatch(HttpServletRequest, HttpServletResponse).
这个是springmvc的核心方法.
三 jsp
如图:四 jsp model1
使用收集参数,在jsp里获取参数,业务及跳转 .如图:五 jsp model2
在bean里实行获取参数,跳转,请求参数到模型没有封装,bean内跳转到”xxx.jsp”,和view层绑定严重。如图:六 spring
ioc aop1.id,name,scope 2.property type ref idref list map set property
3.constructor-arg index type 4.autowire by type byname 5.分散xml,property文件 __
6.连接数据库jdbc 7.aop MethodBeforeAdvice ProxyFactoryBean AfterReturningAdvice MethodInterceptor
ThrowsAdvice NameMatchMethodPointcut ControlFlowPointcut 7.Timertask SchedualedTimerTask
七 springmvc
(一).springmvc处理过程:所有的请求转到DispatcherServlet来处理,先加载Spring 默认配置文件,路径为“/WEB-INF/[servlet名字]-servlet.xml”。
HandlerMapping用于从域名到哪个bean来处理,将对应的controller包装为HandlerExecutionChain
HandlerAdapter用于选择bean的什么方法来处理这个请求。将HandlerExecutionChain包装为SimpleControllerHandlerAdapter,然后调用对应bean的handleRequest方法,返回ModelAndView.
InternalResourceViewResolver使用JstlView渲染对应的ModelAndView为jsp文件显示.
HandlerExceptionResolver用于处理中间过程产生的异常.
ContextLoaderListener 初始化的上下文加载的Bean所在的xml文件是对于整个应用程序共享的,不管是使用什么表现层技术,一般如DAO层、Service层Bean;
DispatcherServlet 初始化的上下文加载的Bean 是只对Spring Web MVC 有效的Bean,如Controller、
HandlerMapping、HandlerAdapter等等,该初始化上下文应该只加载Web相关组件。
(二).springmvc内容
1. controller类型 MultiActionController,Controller,
2. PropertyEditorSupport类型转换
3. Validator验证器
4. springmvc 拦截器 HandlerInterceptor
5. springmvc 注解:url路径限定映射(@RequestMapping,@Controller),请求方法映射限定(method = RequestMethod.GET),请求参数数据映射限定(params=”submitFlag!=create”),请求头数据映射限定(headers = “!abc”),功能处理方法格式(ServletRequest/HttpServletRequest,InputStream/OutputStream,命令/表单对象),请求参数绑定(@RequestParam,@PathVariable,@CookieValue,@RequestHeader,@ModelAttribute,@SessionAttributes)
6. springmvc 数据验证
八 webx
(一).webx处理过程对应的filter在xxx\src\main\webapp\WEB-INF目录下的webx**.xml中
1.请求处理过程.当一个HTTP请求到达时,首先由WebxFrameworkFilter接手这个请求.这个类在web.xml中配置.然后调用WebxRootController。WebxRootController对象存在于root context中,它被所有子应用所共享,由webx.xml配置。它会创建RequestContext实例,从而增强request、response、session的功能。接下来,WebxController对象会被调用。WebxController对象是由每个子应用独享的,子应用app1和app2可以有不同的WebxController实现。默认的实现,会调用pipeline。Pipeline也是由各子应用自己来配置的。假如pipeline碰到无法处理的请求,如静态页面、图片等,pipeline应当执行 valve强制退出。然后WebxRootController就会“放弃控制” —— 这意味着request将被返还给/WEB-INF/web.xml中定义的servlet、filter或者返还给servlet engine本身来处理。
2.pipeline配置.
处理过程见网页http://www.openwebx.org/docs/turbine.html .
重点:
对应的业务代码在main/java里面。对应的web页面在main/webapp/xxx/templates/screen/web里面.
(1)如果是performTemplateScreen.查找并执行screen这里要用到一个规则:target映射成screen module类名的规则。假设target为xxx/yyy/zzz,那么Webx Turbine会依次查找下面的screen模块:
screen.xxx.yyy.Zzz,
screen.xxx.yyy.Default,
screen.xxx.Default,
screen.Default。
本次请求的target为homepage,因此它会尝试查找screen.Homepage和screen.Default这两个类。
(2).如果是renderTemplate.这里用到两个规则:target映射成screen template,以及target映射成layout template。假设target为xxx/yyy/zzz,那么Webx Turbine会查找下面的screen模板:/templates/screen/xxx/yyy/zzz。Screen模板如果未找到,就会报404 Not Found错误。 找到screen模板以后,Webx Turbine还会试着查找下面的layout模板:
/templates/layout/xxx/yyy/zzz
/templates/layout/xxx/yyy/default
/templates/layout/xxx/default
/templates/layout/default
Layout模板如果找不到,就直接渲染screen模板;如果存在,则把渲染screen模板后的结果,嵌入到layout模板中。Layout模板和screen模板中,都可以调用control。每个页面只有一个screen,却可以有任意多个controls。
九 springmvc和webx区别
都是先有bean,再有页面,但是springmvc的页面路径是xml配置,webx的页面路径是约定路径。webx的web页面渲染默认执行bean的public void execute(Context context)方法.json请求调用doXXX方法.
相关文章推荐
- [置顶] Java Web前端到后台常用框架介绍
- Java Web部署:web.xml各参数介绍
- [原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存
- Java Web部署:web.xml各参数介绍
- Java Web笔记 – JSP的工作原理介绍 Servlet与JSP之间的转换关系
- Java Web笔记 – Servlet中的Filter过滤器的介绍和使用 编写过滤器
- Java Web笔记 – JSP中常用内置对象的介绍与分析
- java web 类介绍
- Java Web前端到后台常用框架介绍
- java web项目里ehcache.xml介绍
- Java Web 2.0架构开发与项目实战主要内容介绍http://product.dangdang.com/product.aspx?product_id=20697597
- Java Web前端到后台常用框架介绍
- Java Web前端到后台常用框架介绍
- [原创]java WEB学习笔记100:Spring学习---Spring Bean配置:SpEL详细介绍及代码演示
- 猫哥带你去战斗——Java Web开发——开发环境介绍[2]
- Java Web知识点整理:第一章:Html入门、CSS介绍、Java和JavaScript区别
- Java Web前端到后台常用框架介绍
- Java Web(一)Servlet/JSP HTML介绍
- Java Web前端到后台常用框架介绍
- Java Web前端到后台常用框架介绍