DWR,连接池,文件上传,多线程

wxx474341237 2010-06-22 08:53:51
dwr.xml:
<dwr>
<allow>
<create javascript="hello" creator="new">
<param name="class" value="com.accp.dwr.HelloDRW"></param>
</create>

<create javascript="IncludeResource" creator="new">
<param name="class" value="com.accp.dwr.IncludeResource"></param>
</create>

<create creator="new" javascript="Catalog">
<param name="class" value="com.accp.dwr.Catalog" />
</create>

<convert converter="bean" match="com.accp.vo.Item">
<param name="include"
value="id,name,description,formattedPrice" />
</convert>

<create creator="new" javascript="ListAndMap">
<param name="class" value="com.accp.dwr.ListAndMap" />
<include method="doList"/>
<include method="doMap"/>
</create>

<convert converter="bean" match="com.accp.vo.Userinfo">
<param name="include" value="uname,upwd" />
</convert>

<create creator="spring" javascript="t4">
<param name="beanName" value="dwrtest4" />
</create>

</allow>
</dwr>

web.xml:

<!-- DWR -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>
initApplicationScopeCreatorsAtStartup
</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>maxWaitAfterWrite</param-name>
<param-value>500</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

<!-- FILTER -->
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>
com.accp.utils.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>

tomcat6 context.xml:
<Resource name="jdbc/accp" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="sa" password="120010" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=accp"/>

Java连接类:

Context ic = new InitialContext();
DataSource source = (DataSource) ic
.lookup("java:comp/env/jdbc/accp");
Connection con = source.getConnection();

文件上传:
req.setCharacterEncoding("GBK");
resp.setCharacterEncoding("GBK");
System.out.println(this.getServletConfig());
System.out.println();//ServletContext.
// return;
String f1=req.getParameter("filepath");
// f1=f1.replaceAll("\\", "\\");
System.out.println(f1);
// System.out.println(f1.lastIndexOf("\\"));
String newfilename=f1.substring(f1.lastIndexOf("\\")+1);
String f2=req.getParameter("newpath");
System.out.println(f2);
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(new File(f1)); // 建立文件输入流

File file = new File("E:\\wxx\\"+newfilename);
fos = new FileOutputStream(f2);

int r;
while ((r = fis.read()) != -1) {
fos.write((byte) r);
}
} catch (FileNotFoundException ex) {
System.out.println("Source File not found:" + f1);
} catch (IOException ex) {
System.out.println(ex.getMessage());
} finally {
try {
if (fis != null)
fis.close(); // 一定要进行文件的关闭,否则在新文件会是空的!
if (fos != null)
fos.close();
} catch (IOException ex) {
System.out.println(ex);
}
}

多线程(内部类实现):
public class ThreadTest {
private int j;

public static void main(String[] args) {
ThreadTest tt = new ThreadTest();
Inc inc=tt.new Inc();
Dec dec=tt.new Dec();
Mvp mvp=new Mvp();
// for (int i = 0; i < 2; i++) {
try {
Thread t=new Thread(inc);
t.start();
t=new Thread(dec);
t.start();
mvp.start();
} catch (Exception e) {
e.printStackTrace();
}
// }
}

private synchronized void inc() {
j++;
System.out.println(Thread.currentThread().getName() + "-inc:" + j);
}

private synchronized void dec() {
j--;
System.out.println(Thread.currentThread().getName() + "-dec:" + j);
}

private class Inc implements Runnable {

public void run() {
for (int i = 0; i < 100; i++) {
inc();
}
}

}

class Dec implements Runnable {

public void run() {
for (int i = 0; i < 100; i++) {
dec();
}
}

}
}
...全文
66 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,100

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧