标签归档:struts2
UrlRewriterFilter(url重写)的初步使用
之前做的网站基本成型,不过,听说要对搜索引擎友好点,还得要将网站弄成静态化,至少要做点“伪静态”的工作。而我对url rewrite早有所闻,于是乎就上其官网下了个来玩。入门很简单,下载地址是http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip,下载来解压。将解压出来的urlrewrite-2.6.0.jar复制到项目中的WEB-INF\lib下,还有urlrewrite.xml复制到WEB-INF下。 接下来就是配置了,配置也是超级简单的。 web.xml里的配置如下,在urlrewrite.xml里面也有注释说明怎么添加的。 <!– UrlRewriteFilter –> <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter </filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 注意将这一段配置放在struts2的配置上面。还要在struts2的配置里加上两行,具体如下: <!– 配置struts2 –> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher … 继续阅读
struts2使用jQuery的客户端验证–适合登录注册
话说用struts2自身带的那个dojo,根本就不好用,排版难而且出的错误千奇百怪,一启用dwr后,校验错误总是不断弹出一个空白对话框。一气之下,不要struts2的客户端校验了,于是就上网找别的ajax框架。最后还是决定用jQuery了。这个jQuery还挺不错,还让我找到个基于jQuery的验证插件,叫jQuery formValidation,可以到作者的博客上去看看,也可以看看现场演示的Demo。这个插件比较适用于中国国情,比如有身份证验证、QQ号码验证、中文字符验证等等,自己也可以扩展无数个验证。由于我是初学者,对jQuery也是想到用时才去看一下,所以找到这个插件之后我都不去jQuery的官方网站去看了,懒人一个,为的就是快速的用起来。 根据作者的用户手册,需要加载的文件有jquery_last.js,formValidator.js,formValidatorRegex.js 然后在将demo里面的代码找到需要的复制到自己的文件中来,比如我根据自己需要做的客户端验证而复制过来的代码是:
Struts2用户授权只有登录的用户才能使用某些功能或者页面的问题
有时候只允许某些登录的用户才能访问某些资源,可以通过配置过滤器filter来解决。具体底层原理我不懂,但是这样写一个过滤器,将限制的资源放在某个文件夹下,然后只让通过授权的用户才能使用这个文件夹下的资源,就能够解决这个问题啦。 首先编写一个过滤器,在网上找到的资源: import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class AuthorityFilter implements Filter { public void destroy() { System.out.println("destroy"); } public void doFilter(ServletRequest arg0, ServletResponse arg1, … 继续阅读
Struts2文件上传限制类型和大小以及图片中文名不显示的问题解决
Struts2文件可以轻松实现文件上传功能,其标签是<s:file>,而其默认的拦截器设置的文件大小是2M。很多时候我们的需求是上传图片,而考虑到实际在网页上显示出来的图片质量不必要求太高,所以限制上传的文件类型是图片并且需要限制其大小。要解决这个问题,使用默认的拦截器就可以了,不用自己再写个自己的拦截器出来。 方法很简单,在struts.xml里面相应的上传文件的action进行如下配置,其中allowedTypes是允许上传的文件类型,maximumSize是允许上传的文件大小,这里设置成400K: <action name="addFile" class="com.yourcompany.actions.AddFileAction"> <interceptor-ref name="fileUpload"> <param name="allowedTypes"> image/bmp,image/png,image/gif,image/pjpeg </param> <param name="maximumSize">409600</param> </interceptor-ref> <interceptor-ref name="defaultStack" /> <result name="input">/addFile.jsp</result> <result name="success" type="redirect">/index.jsp</result> <result name="error">/error.jsp</result> </action> 有时候会发现上传的图片带有中文字符的不会显示出来,而英文名或者数字就能够正常显示,网上有人说改编码等等,因为我所有的文件都是用UTF-8来编码的了,所以不想改。而涉及到tomcat的配置文件我也不想去动它,所以我就想不如用个时间来做文件名好了,这样就不用原来的中文名了,而平时上网有时候复制下来的图片是一串数字作为名字的,我想就是这样弄的吧。要实现这个功能,就要在action类中进行如下代码的编写。
Struts2保存登陆信息和注销功能例子
无论是开发WEB应用还是信息系统,总要遇到需要登录的问题。即使是开放度很高的网站,也需要有这个功能,除非是一些完全静态的网站,没有一点交互的内容。 这个是学习笔记,直奔主题。 LoginAction类是已经写好了,要记录用户登录的信息,只需要在return SUCCESS;前面加上以下这段代码就OK了。 Map<String, String> attibutes = ActionContext.getContext().getSession();//记录用户登录信息 attibutes.put("username", username); attibutes.put("password", password); 还需要导入包: import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; 这样就可以保存登录的信息了,而注销功能的代码更简单。可以在LoginAction里面写然后在struts.xml那里配置,也可以新建一个LogoutActoin的类如下: