请教如何在一个javabean中执行一个servlet的doGet函数?
解决方案 »
- 新手求助!关于servlet ~~~~~~~~~~顺便默哀死难的同胞!
- 请问有人了解深圳市彩讯科技有限公司这个公司吗?
- Intelij IDEA中显示calendar类不正确是怎么回事?菜弟请高手赐教
- 求助,使用session做用户标志问题!小问题
- java 排列组合
- 在线等待!急,tomcat中文问题
- 如何在一个窗口关闭的时候,刷新前一个窗口中的内容
- 关于jsoup中element的问题
- 求一个小demo对datagrid中的列求和并将所得的和放在最后一行(datagrid有翻页)
- ajax post提交到action无法获取json数据
- 怎样用代码备份mysql的数据库
- 高手进来解释一下什么是:jsp model1和jsp model2有什么区别?
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ToHtmlIndex extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String url="";
url = request.getParameter("file_name");
ServletContext sc = getServletContext();
url = "/" + url + ".jsp";//这是你要生成HTML的jsp文件,如http://localhost/index.jsp的执行结果.
String name = request.getParameter("name");
name = name + ".htm";//这是生成的html文件名,如index.htm.
RequestDispatcher rd = sc.getRequestDispatcher(url);
final ByteArrayOutputStream os = new ByteArrayOutputStream();
final ServletOutputStream stream = new ServletOutputStream()
{
public void write(byte[] data, int offset, int length)
{
os.write(data, offset, length);
} public void write(int b) throws IOException
{
os.write(b);
}
};
final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
HttpServletResponse rep = new HttpServletResponseWrapper(response)
{
public ServletOutputStream getOutputStream()
{
return stream;
}
public PrintWriter getWriter()
{
return pw;
}
};
rd.include(request, rep);
pw.flush();
if(pw!=null){
pw.close();
}
FileOutputStream fos = new FileOutputStream(name); //把jsp输出的内容写到xxx.htm
os.writeTo(fos);
if(fos!=null){
fos.close();
}
if(os!=null){
os.close();
}
if(stream!=null){
stream.close();
}
}
}
ToHtmlIndex t = new ToHtmlIndex();
t.doGet(request,response);
不过这个有意义吗?
要在定时器中执行这段程序。
不知楼主用意。
ToHtmlIndex t = new ToHtmlIndex();
t.doGet(request,response);
不过这个有意义吗?
这样写不行,报空指针错误
我觉得你这样做就是要实现一个jsp解释器,挺难的应该。
URL u = new URL("http://server:port/servletMappingPath");
InputStream is = u.getInputStream();
这样保存起它就行
import javax.servlet.http.HttpServletResponse;/*
* 创建日期 2005-12-27
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*//**
* @author Administrator
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
public class CallServletBean { public void callServlet() {
HttpServletRequest req = null;
HttpServletResponse res = null;
TestServlet ts = new TestServlet();
ts.processReq(req,res);
}
}
如果得不到请求及响应对象,可以构造空的,就没有问题.
但不管怎样,你的bean在Web应用才可以正常调用.因为servlet是需要Web容器来控制生命周期的