文件上传在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件上传功能。
common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。用该组件可实现一次上传一个或多个文件,并可限制文件大小。
下载后解压zip包,将commons-fileupload-1.0.jar复制到tomcat的webapps\你的webapp\WEB-INF\lib\下,目录不存在请自建目录。
新建一个servlet: Upload.java用于文件上传: 阅读全文 »
作者:堕落天使
Tags: jsp, 上传文件, 源码
页面端(login.jsp):
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<TITLE>Ajax验证用户名是否存在例子</TITLE>
<script>
//设一个变量
var XMLHttpReq=false;
//创建一个XMLHttpRequest对象
function createXMLHttpRequest(){
if(window.XMLHttpRequest){ //Mozilla
XMLHttpReq=new XMLHttpRequest();
}
else if(window.ActiveXObject){
try{
XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
}
//发送请求函数
function send(url){
createXMLHttpRequest();
XMLHttpReq.open("get",url,true);
XMLHttpReq.onreadystatechange=proce; //指定响应的函数
XMLHttpReq.send(null); //发送请求
}
function proce(){
if(XMLHttpReq.readyState==4){ //对象状态
if(XMLHttpReq.status==200){//信息已成功返回,开始处理信息
<!–测试读取xml开始–>
var root=XMLHttpReq.responseXML;
var res=root.getElementsByTagName("content")[0].firstChild.data;
window.alert(res);
<!–测试读取xml结束–>
//var xmlReturn = XMLHttpReq.responseText;
//window.alert(xmlReturn);
}else{
window.alert("所请求的页面有异常");
}
}
} 阅读全文 »
作者:堕落天使
Tags: ajax, jsp
回到原点,重新认识
一、page 对象
page对象代表JSP本身,更准确地说它代表JSP被转译后的Servlet,它可以调用Servlet类所定义的方法。
二、config 对象
config 对象里存放着一些Servlet 初始的数据结构。
config 对象实现于javax.servlet.ServletConfig 接口,它共有下列四种方法:
public String getInitParameter(name)
public java.util.Enumeration getInitParameterNames( )
public ServletContext getServletContext( )
public Sring getServletName( )
三、request 对象
request 对象包含所有请求的信息,如:请求的来源、标头、cookies和请求相关的参数值等等。
request 对象实现javax.servlet.http.HttpServletRequest接口的,所提供的方法可以将它分为四大类: 阅读全文 »
作者:堕落天使
Tags: jsp, web
request:pageContext.getRequest();
session:pageContext.getSession();
application:pageContext.getServletContext();
response:pageContext.getResponse();
pageContext隱含物件對應於javax.servlet.jsp.PageContext型態之物件,隱含物件都自動的被加入至pageContext中,您可以藉由它來取得與JSP相關的隱含物件對應之Servlet物件,像是getRequest()可以取得ServletRequest,getServletConfig()可以取得ServletConfig,getSession()可以取得HttpSession等等。提供取得隱含物件對應之Servlet物件並不是pageContext的主要作用,它的主要功能在提供一個單一個介面,以管理各種的公開物件(像是HttpSession、ServletContext、ServletConfig、ServletRequest、ServletResponse等等),提供一個單一的API來管理屬性作用範圍等等。
我們之前曾經使用過session的setAttribute()等方法設定一個進程可以共用的屬性物件,使用session設定的屬性在同一個進程中可以共用,除了session之外,還有pageContext、request、application也都可以使用setAttribute()之類的方法(詳請查閱API文件)來設定可以共用的屬性物件,只不過這四個物件所設定的屬性其共用範圍各不相同。 阅读全文 »
作者:堕落天使
Tags: jsp, taglib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| package cn.org.jock.http.listener;
import java.util.Hashtable;
import java.util.Iterator;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
* @author jock
*
*/
public class SessionListener implements HttpSessionListener {
// 集合对象,保存session 对象的引用
static Hashtable<String,HttpSession> ht = new Hashtable<String,HttpSession>();
// 实现HttpSessionListener接口,完成session创建事件控制
public void sessionCreated(HttpSessionEvent arg0) {
HttpSession session = arg0.getSession();
ht.put(session.getId(), session);
System.out.println("create session :" + session.getId());
}
// 实现HttpSessionListener接口,完成session销毁事件控制
public void sessionDestroyed(HttpSessionEvent arg0) {
HttpSession session = arg0.getSession();
System.out.println("destory session :" + session.getId());
ht.remove(session.getId());
}
// 返回全部session对象集合
static public Iterator getSet() {
return ht.values().iterator();
}
// 依据session id返回指定的session对象
static public HttpSession getSession(String sessionId) {
return (HttpSession) ht.get(sessionId);
}
} |
别忘了在web.xml里加上
<listener>
<listener-class>cn.org.jock.http.listener.SessionListener</listener-class>
</listener>
有了这个就可以方便的做很多事了,统计在线人数、在线列表、用户单一登陆等等,自己扩展吧。
作者:堕落天使
Tags: jsp, 技巧, 源码
近期评论