(评分:★★★★ , 回复: 1, 阅读: 926) 1.用filter解决汉字编码及禁止页面缓存 (不用再在每个页面里去加那几行代码了): package beanservlettest;
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*;
public class servfilter extends HttpServlet implements Filter { private FilterConfig filterConfig; //Handle the passed-in FilterConfig public void init(FilterConfig filterConfig) { this.filterConfig = filterConfig; } //Process the request/response pair public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) { try { request.setCharacterEncoding("GB2312");//设置编码 ((HttpServletResponse)response).setHeader("Pragma","No-cache"); ((HttpServletResponse)response).setHeader("Cache-Control","no-cache"); ((HttpServletResponse)response).setHeader("Expires","0");//禁止缓存 //自己添加的代码就这上面四行,其它的都是Jbuilder自动生成的:) filterChain.doFilter(request, response); } catch(ServletException sx) { filterConfig.getServletContext().log(sx.getMessage()); } catch(IOException iox) { filterConfig.getServletContext().log(iox.getMessage()); } } //Clean up resources public void destroy() { } }
下面是在web.xml里的配置: (我的是Jbuilder自动生成的) <filter> <filter-name>servfilter</filter-name> <filter-class>beanservlettest.servfilter</filter-class> </filter> <filter-mapping> <filter-name>servfilter</filter-name> <url-pattern>/*</url-pattern> ///这里表示对整个网站都有效 </filter-mapping>
2.用listener实现在线人数统计.
package beanservlettest;//除了其中三行代码,其余均由Jbuilder自动生成
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*;
public class sessioncount extends HttpServlet implements ServletContextListener, ServletContextAttributeListener, HttpSessionListener, HttpSessionAttributeListener { private static int activeSessions = 0; public void contextInitialized(ServletContextEvent sce) {
}
public void contextDestroyed(ServletContextEvent sce) {
} public void attributeAdded(ServletContextAttributeEvent scab) {
} public void attributeRemoved(ServletContextAttributeEvent scab) {
} public void attributeReplaced(ServletContextAttributeEvent scab) {
} public void sessionCreated(HttpSessionEvent se) { activeSessions++;//每创建一个新的session就 加1 } public void sessionDestroyed(HttpSessionEvent se) { if(activeSessions > 0)//每销毁一个新的session就 减1 activeSessions--; } public void attributeAdded(HttpSessionBindingEvent se) {
} public void attributeRemoved(HttpSessionBindingEvent se) { }
public void attributeReplaced(HttpSessionBindingEvent se) { } public static int getActiveSessions() { return activeSessions; }
}
web.xml里的配置如下:
<listener> <listener-class>beanservlettest.sessioncount</listener-class> </listener>
jsp测试页面:
<%@ page contentType="text/html; charset=GBK" %> <%@ page import="beanservlettest.sessioncount" %>
<html> <head> <title> sc </title> </head> <body bgcolor="#ffffff"> <h1> JBuilder Generated JSP </h1> 当前在线人数有<%=sessioncount.getActiveSessions()%>人。 </body> </html> <a href= "logout.jsp">注销</a>
网页连接:
http://expert.csdn.net/Expert/topic/1788/1788525.xml?temp=.2403833 http://www.chinaunix.net/bbsjh/14/397.html
2003-7-23 12:44:00 查看评语 ?
2003-7-23 16:45:15刚才找到了其它程序的一个错误,总算解决了。在xslt文件里: 把<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
写成了:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl"> //这是当时从 http://expert.csdn.net/expert/Xsl/2.xsl里copy的, //我 晕:(
IE6里能够正常解析, 而java的JAXP却老是出错:
"javax.xml.transform.TransformerException: stylesheet 要求属性:version" 幸好 我突然想到找另外个xsl文件来对照了一下。
把这句话一修改,程序马上执行就成功了。
程序代码: import java.io.*; import javax.xml.transform.*; import javax.xml.transform.stream.*;
第一种: /* try{ File xmlFile = new File("C:\\xmltest\\tiezi.xml"); File xsltFile = new File("C:\\xmltest\\tiezi.xsl"); javax.xml.transform.Source xmlSource = new javax.xml.transform.stream.StreamSource(xmlFile); javax.xml.transform.Source xsltSource = new javax.xml.transform.stream.StreamSource(xsltFile); javax.xml.transform.Result result = new javax.xml.transform.stream.StreamResult(System.out);
//创建一个TransformerFactory 实例 javax.xml.transform.TransformerFactory transFact = javax.xml.transform.TransformerFactory.newInstance(); javax.xml.transform.Transformer trans = transFact.newTransformer(xsltSource); trans.transform(xmlSource, result);
return "转换成功了!!!"; } catch(Exception e){ System.out.println("出错"); returne.toString()+"出错了:("; } */ 第二种: /*try { TransformerFactory transformerFactory = TransformerFactory.newInstance();
StreamSource source = new StreamSource("C:\\xmltest\\tiezi.xml"); StreamResult result = new StreamResult("C:\\xmltest\\result.xml"); StreamSource style = new StreamSource("C:\\xmltest\\tiezi.xsl");
Transformer transformer = transformerFactory.newTransformer(style);
transformer.transform(source, result); return "OK"; } catch (Exception e) { e.printStackTrace(); return "Failed"; } */
|
相关推荐
实现一个禁止缓存的过滤器。 要求和提示: (1)禁止浏览器缓存所有动态页面; (2)有3个http响应头字段可以禁止浏览器缓存当前页面,它们在Servlet中的示例代码如下。 response.setDateHeader("Expires",-1); ...
在Java Web开发中,Filter(过滤器)和Listener(监听器)是两个重要的概念,它们在Web应用程序的生命周期管理和请求处理流程中扮演着关键角色。理解它们的区别和应用场景对于构建高效、灵活的Web应用至关重要。 ##...
在Java JSP(JavaServer Pages)环境中,统计在线人数是一项常见的需求,这通常涉及到服务器端的会话管理、数据持久化以及实时性处理。这里我们将深入探讨如何利用JSP技术来实现这一功能。 首先,我们需要理解JSP的...
在JavaWeb开发中,"FILTER(过滤器)"和"LISTENER(监听器)"是两个重要的组件,它们极大地增强了应用程序的功能和灵活性。本案例将深入探讨这两个组件的原理、用法及其在实际项目中的应用。 一、FILTER(过滤器) ...
1. **过滤器定义**:过滤器是实现了javax.servlet.Filter接口的Java类,它可以在请求到达目标资源(如Servlet、JSP)之前和之后执行操作,如权限验证、字符编码转换、日志记录等。 2. **过滤器链**:多个过滤器可以...
本教程将深入探讨如何使用Java Server Pages (JSP) 实现一个网站流量统计器。这个统计器设计巧妙,无需与现有的数据层进行深度整合,因此在部署时非常灵活,只需简单添加就能实现对网站访问量的有效监控。下面我们将...
2. **Filter和Listener**:在JSP应用中,过滤器(Filter)和监听器(Listener)能增强功能,如登录检查、性能监控和会话管理。 3. **JSP与Spring框架整合**:Spring MVC框架提供了更强大的MVC支持,与JSP配合使用,...
通过上述知识点的介绍,我们可以看出《JSP与Servlet程序设计实践教程》主要围绕着JSP和Servlet这两种核心技术展开,不仅覆盖了基本概念和技术要点,还深入探讨了它们在实际项目中的应用技巧及注意事项。这对于学习...
- **后续请求**:JSP 编译后的 Servlet 将被缓存,后续请求直接使用缓存的 Servlet 处理。 #### 16. Servlet 的线程安全性问题 Servlet 默认不是线程安全的,因为它们可能在多线程环境下共享数据。为了解决这个...
本学习笔记源码提供了全面的学习资源,涵盖了这两个技术的基础到高级应用,旨在帮助开发者深入理解并熟练掌握JSP和Servlet。 1. **JSP基础**: JSP是一种服务器端的脚本语言,它将HTML、CSS、JavaScript与Java代码...
项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...
这可以通过监听器(Listener)或过滤器(Filter)实现。例如,当一个JSP被请求后,可以捕获这个请求,生成HTML并保存在指定目录。 4. **重定向请求**:后续用户再次请求相同页面时,服务器可以直接返回已生成的HTML...
3. **JSP动作标签**:如`<jsp:useBean...>`实例化和使用JavaBean,`<jsp:setProperty...>`设置Bean属性,`<jsp:getProperty...>`获取Bean属性。 4. **EL和JSTL**:EL简化了属性访问,如`${...}`,而JSTL提供了一...
【音乐网站(JSP+SERVLET)】是一个基于Java技术构建的在线音乐平台项目,它主要利用了JSP(JavaServer Pages)和Servlet这两种核心技术来实现动态网页和服务器端的处理逻辑。在这个项目中,JSP用于展示用户界面,而...
4. **过滤器(Filter)**:通过实现`Filter`接口,可以拦截请求和响应,进行预处理和后处理,例如字符编码转换、安全过滤等。 5. **监听器(Listener)**:通过实现各种监听器接口,如`ServletContextListener`、`...
14. **JSP与Servlet的过滤器和监听器**:学习如何使用Filter和Listener接口来拦截请求、响应,以及监听会话和应用事件。 15. **Web容器和部署**:了解Tomcat等Web服务器的工作原理,以及如何部署和调试JSP应用。 ...
项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...
通过缓存技术(如Ehcache)、减少不必要的数据库查询、优化JSP页面的结构和代码,以及利用JSP的标签库(Tag Libraries)如JSTL,可以提升系统的性能。 一个完整的JSP网络购物系统会涉及以上多个方面,通过合理的...
**JSP网上书店设计与实现** 本篇将详细介绍如何利用JSP技术来设计并实现一个功能完备的网上书店系统。JSP(Java Server Pages)是一种动态网页开发技术,它允许开发者将HTML、CSS和Java代码混合在一起,为用户提供...
- **JSP**:第一次访问时会被编译成Servlet并缓存,后续访问直接使用编译后的Servlet,因此在多次访问时效率更高。 #### 四、Servlet与JSP的配合使用 - **MVC设计模式**:Servlet作为控制器(Controller),负责...