Java Web
文章平均质量分 72
whitejava2
这个作者很懒,什么都没留下…
展开
-
Struts2:Result结果类型
常用的结果类型Struts中自带了一些结果类型。dispatcher表示将结果转交给JSP或者Servlet,redirect表示重定向到另外一个URL,redirectAction表示重定向到另外一个Struts动作。默认的都是dispatcher类型。dispatcher类型的返回结果中可以使用OGNL表达式,主要是为了便于实现显示动态的页面。redirect结果类型中也可以使用O原创 2014-09-04 22:31:32 · 1469 阅读 · 0 评论 -
Webx框架:RequestContext详解
RequestContextRequestContext可以看成request和response的合体。多个RequestContext还可以串起来,就像Filter链条一样。每个外层RequestContext都会在内层RequestContext的基础上增加功能。在设计模式中这叫装饰器。RequestContext种类有basic/buffered/lazy-commit/pa原创 2014-11-12 21:28:57 · 6072 阅读 · 0 评论 -
Spring框架:SpringMVC详解
SpringMVC的工作流程。最先接触到请求的是DispatcherServlet,它会将请求根据配置文件转发到控制器,控制器返回视图名称和一个Model表示处理结果。DispatcherServlet再将处理结果发送给视图模板引擎,由它进行页面的渲染。下图是整个过程。基本配置声明servlet。首先要在web.xml中声明Spring的Servlet,代码如下: sp原创 2014-10-11 21:41:13 · 2042 阅读 · 0 评论 -
Spring框架:Spring安全
在传统的Web开发中,安全性的代码都是分散在各个模块中的,这样不方便管理,而且有时候可能会漏掉一个地方导致安全漏洞。为了解决这个问题,有人发明了Spring Security。它的作用是将业务逻辑中有关安全的代码全都移动到一个模块中集中管理。本质上是AOP的一个子集。过滤URL为了过滤URL,首先要在web.xml中加入一个过滤器。filter-name不能随便填写,因为它和另外一原创 2014-10-13 22:14:23 · 1804 阅读 · 0 评论 -
Webx框架:依赖注入
Webx的依赖注入和Spring的依赖注入非常像,只是有一点点的区别。注入的时候只能让生命周期长的注入到生命周期短的对象中,比如requestScope对象注入到singleton时就会发生错误。但是对于一些特殊的对象,比如request、session、response它们的生命周期是requestScope,而它们可以注入到任意对象中。这是因为webx对这些对象进行了特殊的处理。原创 2014-10-29 21:40:25 · 1487 阅读 · 0 评论 -
Webx框架:Pipeline简介
Pipeline。它的含义就是管道,一个管道可以安装很多的阀门,可以有很多分支。它用于控制页面的处理流程。它需要定义在pipeline.xml文件中,该文件中的每个标签都是一个阀门。该文件中可以放一些简单的控制语句。在项目中,下面这样的管道配置就已经够用了。原创 2014-11-03 22:05:41 · 2464 阅读 · 0 评论 -
Webx框架:Valve详解
Valve用于控制请求的执行流程。它采用责任链的设计模式(类似于struts的拦截器)。valve的意思是阀,阀控制水流(网络请求)的走向。自定义阀。public class MyValve implements Valve { public void invoke(PipelineContext pipelineContext) throws Exception {原创 2014-11-20 20:38:27 · 3144 阅读 · 0 评论 -
Webx框架:ResourceLoader
Spring中的ResourceLoader获取Resource的方法有两种。一种是通过ResourceLoader载入资源,另外一种是通过注入。通过ResourceLoader载入资源的方法如下:public class Test implements ResourceLoaderAware { private ResourceLoader resourceLoader; pu原创 2014-11-27 21:59:05 · 1815 阅读 · 0 评论 -
Webx框架:AutoConfig
AutoConfigAutoConfig是一个小工具,用于解决不同机器之间配置不同的问题。有时候有些配置,比如数据库地址、缓存地址等,这些配置与环境有关。每次在不同的环境中都需要重新修改配置,比较麻烦。解决这个问题有两种方法,一种是通过maven中的filter工具,另外一种是使用autoconfig。maven-filter工具的缺点是,当项目编译打包之后,无法再修改配置文件。而auto原创 2014-12-05 20:10:18 · 3914 阅读 · 0 评论 -
Webx框架:会话管理
在Servlet中,Session和Cookie是分开的。Session一般保存在内存中,当然也可以保存在数据库等其他地方。如果保存在内存中,对于服务集群来说就需要解决Session共享的问题。如果保存在数据库,就存在单点故障、性能差等问题。webx提供了会话框架,将session这样复杂的问题统一进行解决。在webx框架中,主张将cookie合并到session中,再通过规则,路由到co原创 2014-12-05 20:20:04 · 2276 阅读 · 0 评论 -
Webx框架:表单验证
表单验证传统的应用中,表单中的数据是放在Java代码中进行检验的。这种方法在编写java代码的时候很无聊,而且后期的修改也不方便。 而webx框架将表单验证的逻辑独立放在配置文件中。这种方式更加方便。webx中,表单的验证有三个步骤:定义验证规则在Java代码中调用该规则在页面中显示验证结果。定义验证规则。下面是验证规则的一个例子。services:form x原创 2014-12-13 20:23:59 · 2600 阅读 · 2 评论 -
Spring框架:Spring与持久化
Spring的持久化用于简化数据的操作。数据源数据源有多种类型:JNDI、连接池、JDBC。JNDI的配置方法。例子中使用Tomcat作为Web容器。首先要在context.xml中加上下面这段代码。<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"原创 2014-10-08 22:53:33 · 4134 阅读 · 0 评论 -
Webx框架:Spring Schema 和 Spring Ext
webx诞生的原因是当时市面上没有好用的web框架。现在的Web框架有很多,然后它们背后的思想都是相似的,而且越来越趋同。Spring Schema在传统的spring中,配置bean时需要手动去指定具体的实现类是什么,参数有哪些。这样开发者需要记住具体的实现类、参数名称、含义等,会带来很大的记忆负担。为了解决这个问题,SpringSchema出现了。它的解决办法是将所有的参数转换原创 2014-10-23 21:24:20 · 1733 阅读 · 0 评论 -
简化网站开发:SiteMesh插件
在编写一个网站时,几乎所有的页面都会有相同的部分。比如顶部的导航栏,每个页面都是一样的,底部的版权声明,每个页面也都是一样的。那么在编写顶部导航栏的时候,第一种方法就是直接复制导航栏的全部代码,这种方法初期开发很简单但是后期维护简直就是噩梦,要是导航栏要增加一个按钮,所有的页面都要修改,非常麻烦。第二种方法是将顶部导航栏专门写到一个文件中,所有的页面include这个文件。这样每个页面都要原创 2014-08-21 19:49:50 · 1069 阅读 · 0 评论 -
Spring框架:Spring容器详解
Spring容器Spring容器可以帮助你管理所有的Bean对象,专业术语称之为IoC控制反转。在传统的程序中,对象的生成都是由开发者完成的。而在控制反转中,对象的生成全部都交给框架完成。这样的好处就是减少了程序的依赖性。Bean在Spring中的生命周期如下:实例化。Spring通过new关键字将一个Bean进行实例化,JavaBean都有默认的构造函数,因此不需要提供构原创 2014-09-18 21:40:16 · 9843 阅读 · 2 评论 -
Struts1和Struts2的区别
Struts1和2的区别。在联想区别的时候,思考一下Struts2的处理流程,这样每个区别就都能背出来了。Struts1中的Action不是线程安全的,Struts2中每个请求创建一个新的Action,所以是线程安全的。Struts1中没有拦截器,所以每个Action的生命周期都是相同的。而在Struts2中可以自定义拦截器来实现不同的生命周期。Struts1中的请求参数通过ActionF原创 2014-08-22 20:31:40 · 844 阅读 · 0 评论 -
Java Web框架:Struts2简介
历史Struts历史。JSP经历了JSPModel1和JSPModel2阶段。JSPModel1就像现在的PHP一样,每个文件中都混合了业务逻辑和HTML代码,每个JSP都直接与数据库交互。这种模型非常具有局限性,代码重用性较差。后面出现了改进版本的JSPModel1,它增加了JavaBean。JSP文件需要通过JavaBean间接访问数据库。JSPModel2中使用了三种技术:Ser原创 2014-08-25 19:30:43 · 1224 阅读 · 0 评论 -
Struts2:OGNL表达式详解
OGNL用于操作ValueStack中的数据。它负责两件事。第一是在接收HTTP请求时将请求中的字符串转换成Java中的类型,比如int、String等,并赋值给ValueStack上的JavaBean,第二是在页面渲染的时候,从ValueStack中获取属性,并将Java类型转换成字符串进行输出。整个过程如下图:(侵权可删)在HTTP的请求参数中,可以包含OGNL表达式(原创 2014-09-09 20:59:59 · 1190 阅读 · 0 评论 -
Struts2配置文件
要使用Struts,首先要配置web.xml,这个文件放在WEB-INF目录下。下面配置示例:<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://j原创 2014-08-27 19:21:42 · 832 阅读 · 0 评论 -
Struts2拦截器
拦截器可以在动作执行之前或之后执行附加的动作。常见的应用有身份验证、日志记录等。默认拦截器定义在struts-default包中。其中有几个重要的拦截器:params。它的作用是将请求中的数据映射到动作JavaBean中。static-params。它的作用是将action配置中的参数传递给Action。它比ParametersInterceptor优先执行,因此可以用于实现参原创 2014-09-02 21:20:44 · 947 阅读 · 0 评论 -
Struts2动作
ActionContext每个请求的处理都在一个独立的线程中,每个线程都有一个ActionContext对象,它包含了ValueStack和HttpServletRequest的东西。Struts把所有的变量统一放在一个方便的地方,而不是将数据传来传去,这个东西就是ValueStack。它贯穿于整个处理流程,所以拦截器和视图层都可以操作ValueStack中的内容。一般通过OGNL原创 2014-09-03 22:04:15 · 779 阅读 · 0 评论 -
Web框架:Spring简介
Spring是一个比较全面的框架,有很多功能。见下图:ApplicationContextApplicationContext是Spring的核心类,保存了所有的配置。它有多种加载方式,例子如下:// 只能从/WEB-INF/classes加载配置文件new ClassPathXmlApplicationContext("applicationContext.xml"原创 2014-09-16 22:32:09 · 1303 阅读 · 0 评论 -
Spring框架:AOP详解
AOP的中文名称叫做面向切面编程。这个名字非常形象,因为你真的可以把一个系统像面包一样切开,并直接在面包上增加修饰。切面可大可小,大到整个系统,小到某一个方法。AOP有什么用呢?举个例子,每个组件中都可能含有安全、事务、数据库等方面的逻辑,AOP就是把每个组件中的安全作为一个方面进行集中处理,事务作为一个方面,数据库作为一个方面等等。这样才能做到高内聚、低耦合。AOP中有三个重要的术语原创 2014-09-28 23:23:07 · 2399 阅读 · 0 评论 -
Web性能优化:基本思路和常见工具
Web性能优化听了荣华的演讲之后,我对性能优化有了更深层次的认识。性能优化的重要性性能优化是为了赢得用户,为了降低成本。性能优化思路Web常见优化点Java常见排查工具原创 2016-10-23 16:13:17 · 762 阅读 · 0 评论