第1个上传组件commons-fileupload
=============commons-fileupload ================
common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。
-下载后解压zip包,将commons-fileupload-1.1.1.jar,和commons-io-1.2.jar复制到tomcat的webapps\你的webapp\WEB-INF\lib\下,如果目录不存在请自建目录。
新建一个servlet: FileUpload.java用于文件上传:
package com.drp.util.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.*;
import java.util.*;
import java.util.regex.*;
import java.io.*;
import org.apache.commons.fileupload.servlet.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
public class FileUpload extends HttpServlet {
private String u ......
一、JSP简介
JSP (Java Server Pages)是服务器端的脚本语言,是一种在HTML页面中加入Java语言而生成动态页面的技术:加入了新的标签(<%,%>,…)。
JSP是以Java和Servlet为基础开发而成的动态网页生成技术,它的底层实现是Java Servlet。
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
二、JSP的执行过程
客户端请求JSP页面——>JSP Parser解析*.jsp编译为*.java——>javac命令编译成*.class——>执行class文件——>响应返回结果给客户端
JSP代码中包含JSP元素和Template data两类。Template data指的是JSP引擎不处理的部分,就是JSP引擎会把除在标记<%...%>以外的部分直接传递出去而不进行任何处理。
JSP在第一次或修改JSP文件后执行都会调用JSP Parser将*.jsp文件编译成servlet程序,所以会比较慢。
三、JSP基本语法
1. 两种注释类型
(1)HTML注释
可以在JSP代码中添加一段HTML格式的注释,此注释发生到客户端,但不在页面上显示,语法如下:
<!-- HTML格式的注释,在客户端查 ......
一、JSP页面显示乱码
二、表单提交中文时出现乱码
三、数据库连接
大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到
的中文乱码的问题及解决办法写出来供大家参考。
一、JSP页面显示乱码
下面的显示页面(display.jsp)就出现乱码:
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<%
out.print("JSP的中文处理");
%>
</body>
</html>
对不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用的编码方式不同和浏览器
对不同的字符显示结果不同而导致的。解决办法:在JSP页面中指定编码方式(gb2312),即在页面的第一
行加上:<%@ page contentType="text/html; charset=gb2312"%>,就可以消除乱码了。完整页面如下
:
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> ......
长度限制JavaScript代码
CODE:
<script> function test() { if(document.a.b.value.length>50) { alert("不能超过50个字符!"); document.a.b.focus(); return
false; } } </script> <form. name=a nsubmit="return test()"> <textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea> <input type="submit" name="Submit" value="check">
</form>2. 只能是汉字
JavaScript代码
CODE:
<input nkeyup="value="/oblog/value.replace(/[^\u4E00-\u9FA5]/g,'')">3." 只能是英文
JavaScript代码
CODE:
<script. language=javascript> function onlyEng() { if(!(event.keyCode>=65&&event.keyCode<=90)) event.returnvalue=false; } </script>
<input nkeydown="onlyEng();">4. 只能是数字
JavaScript代码
CODE:
<script. language=javascript> function onlyNum() { if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105))) //考虑小键盘上的数字键
event.returnvalue=false; } </sc ......
response.sendRedirect("display.jsp");
request.getRequestDispatcher("display.jsp").forward(request,response);
jsp的页面跳转有两种方法:RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法。
它们的区别是:
RequestDispatcher.forward()方法仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值,如果需要在下一个页面中能从中获 取新的信息的话,可以Request.setAttribute()来放置一些标志,这样从下一个页面中获取。其写法如下:
try{
request.getRequestDispatcher("display.jsp").forward(request,response);
}
catch(Exception e){
e.printStackTrace();
}
HttpServletResponse.sendRedirect()则是完全的跳转,浏览器将会得到跳转 的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。其写法如下:
response.sendRedirect("display.jsp");
两者相对来说RequestDispatcher.forward()方法更加高效,当它可以满足需要时,尽量使用Request Dispatcher ......
http://hi.baidu.com/shedewang/blog/item/b4a71b254e43ce35c895599b.html
说是支持1亿pv/天,也许有点夸张,但如果您能认真看完相信也不会让您失望。
如果大家真想支持我、支持中国人开源项目,请把该文贴到自己的博客中或者收藏本文,记得包含文档的下载地址!!!!!!!谢谢。
我说的系统主要是构建在hibernate之上的高效数据库缓存系统,其中包含了分布式解决方案,该系统已经应用在舍得网上了,没有发现大问题,本人也相信该系统已经足够强大,应付数百万IP/天的应用都不是问题,我这么说肯定有人会对此表示怀疑,其实系统到底能撑多少IP/天不在于系统本身而是在于使用该系统的人。
代码看上去很简单,其实却是两年经验的总结,整过过程也遇到了很多难点,最后一一解决了,所以也请各位珍惜他人的劳动成果。本系统非常简洁易用,主程序BaseManager.java不到1000行代码,用“精悍”来形容绝对不为过,1000行代码却包含了数据库对象的缓存、列表和长度的缓存、按字段散列缓存、update延时更新、自动清除列表缓存等功能,用它来实现像论坛、博客、校友录、交友社区等绝大部分应用网站都足够了。
我在理想状态下做了压力测试,在没有数据库操作的jsp页面(舍 ......
http://hi.baidu.com/shedewang/blog/item/b4a71b254e43ce35c895599b.html
说是支持1亿pv/天,也许有点夸张,但如果您能认真看完相信也不会让您失望。
如果大家真想支持我、支持中国人开源项目,请把该文贴到自己的博客中或者收藏本文,记得包含文档的下载地址!!!!!!!谢谢。
我说的系统主要是构建在hibernate之上的高效数据库缓存系统,其中包含了分布式解决方案,该系统已经应用在舍得网上了,没有发现大问题,本人也相信该系统已经足够强大,应付数百万IP/天的应用都不是问题,我这么说肯定有人会对此表示怀疑,其实系统到底能撑多少IP/天不在于系统本身而是在于使用该系统的人。
代码看上去很简单,其实却是两年经验的总结,整过过程也遇到了很多难点,最后一一解决了,所以也请各位珍惜他人的劳动成果。本系统非常简洁易用,主程序BaseManager.java不到1000行代码,用“精悍”来形容绝对不为过,1000行代码却包含了数据库对象的缓存、列表和长度的缓存、按字段散列缓存、update延时更新、自动清除列表缓存等功能,用它来实现像论坛、博客、校友录、交友社区等绝大部分应用网站都足够了。
我在理想状态下做了压力测试,在没有数据库操作的jsp页面(舍 ......