随笔分类 - J2EE
摘要:Jetty 是一个 Web server/servlet container, 支持 SPDY,WebSocket,OSGi,JMX,JNDI,JAAS 。Jetty非常高效而且灵活,Google App Engine 选择了Jetty,而放弃了Tomcat,或是其他的服务器。 Jetty的口号是:“不要把你的程序部署到Jetty里,而是把Jetty部署到你的程序里”,意味着,你可以把Jetty当成程序的一个HTTP模块放到你的程序里。
本文先通过一个简单的HelloWorld示例,展示了java应用中的Jetty是如何启动的;接着详细分析了Jetty的整体架构;最后展示了用Jetty启动一个标准的Java web app。
阅读全文
摘要:当我们实现一个文件下载功能时,大多数人是通过Strust等框架实现的。Strust框架把底层的文件下载细节隐藏了起来,使我们不得其要领。下面我通过一个程序示例来再现通过Servlet下载文件的细节和原理。示例.....。文件下载的原理非常简单,就是把数据从一个输入流中读出数据,再写入一个输出流。这里的输入流是FileInputStream(为了提高速度,对其包装了一个装饰类BufferedInputStream,以提供缓冲功能),输出流是ServletOutputStream。
阅读全文
摘要:Servlet工作原理一、Servlet生命周期分为三个阶段:1、初始化阶段,调用init()方法2、响应客户请求阶段,调用service()方法3、终止阶段,调用destroy()方法二、Servlet初始化阶段,在下列时刻Servlet容器装载Servlet:1、Servlet容器启动时自动装载某些Servlet,这些Servlet在web.xml文件中的内添加了如下代码:12、在Servlet容器启动后,客户首次向Servlet发送请求。3、Servlet类文件被更新后,重新装载Servlet。三、Servlet接收和响应客户请求的过程: 1、首先客户发送一个请求。 2、Servle..
阅读全文
摘要:通过实验来验证Servlet、Filter和Listener的调用顺序、生命周期。1、示例项目目录结构:web.xml edu.shao.webapp.sample.listener.MyServletRequestListener edu.shao.webapp.sample.listener.MyServletContextListener ResponseFilter edu.shao.webapp.sample.filter.ResponseFilter ...
阅读全文
摘要:摘自javax.servlet.*类的javadocinterface javax.servlet.ServletDefines methods that all servlets must implement.A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across HTTP(the HyperText Transfer Protocol)To implement this
阅读全文
摘要:如果初学 Java Web 开发,请远离各种开发框架,应该从Servlet 开发,学习java web应用最本质的内容。 Servlet 是 Java Web 技术的核心基础,掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。 Servlet和Servlet容器的关系像子弹和抢的关系,彼此依存,但又独立发展,它们通过标准化接口相互协作。选择一个你喜爱的Servlet容器,或者说大一点就是应用服务器,推荐 Tomcat 、Resin 或者 Jetty 这些轻量级的产品。这三个产品下载 zip 包解压后就可以用了。不建议使用.exe格式的安装版...
阅读全文
摘要:中文乱码问题常常出现,本文借鉴前辈的经验,再作如下归纳汇总。第一类问题出现在JSP中:错误页面: 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <%@ page contentType="text/html;charset=iso8859-1"%> 3 <html> 4 <head> 5 <title>乱码啊</title> 6 <meta
阅读全文
摘要:JSP端: 1 <head> 2 <script type="text/javascript" src="json.js"></script> 3 <script type="text/javascript"> 4 var http_request = false; 5 function send_request(url) 6 { 7 http_request = false; 8 if(window.XMLHttpRequest) { 9 http_request = new XMLH
阅读全文
摘要:在Hibernate中的对象有三种状态,即:瞬时状态(Transient)、持久状态(Persistent)、脱管状态(Detached)1、瞬时状态(Transient)由new命令开辟内存空间的Java对象,也就是平时所熟悉的普通Java对象。如:Person p = new Person();瞬时对象特点:(1)不和Session实例关联(2)在数据库中没有和瞬时对象关联的记录2、持久状态(Persistent)持久的实例在数据库中有对应的记录,并拥有一个持久化标识(identifier).持久对象总是与Session和Transaction相关联,在一个Session中,对持久对象的改
阅读全文
摘要:HTTPSession 是一个建立在cookies 和URL-rewriting上的高质量的界面。Session的信息保存在服务器端,Session的id保存在客户机的cookie中。……
阅读全文