我知道两种方法:
1.在servlet中写入很多的html标签
2.在jsp页面中用很多的java代码请问有没有更加方便的方法来实现动态页面的编写!??????????????javajspservlethtmlweb
1.在servlet中写入很多的html标签
2.在jsp页面中用很多的java代码请问有没有更加方便的方法来实现动态页面的编写!??????????????javajspservlethtmlweb
解决方案 »
- struts2使用prototype.js 返回值为空
- 求Magnolia cms源码
- 求正则表达式
- ---!大家好,用poi生成excel,怎样才能变成点击按钮出现下载的页呢??
- 汉字UTF-8码request参数传递变成?
- 如何实现页面5秒钟一刷新,同时别的刷新(如:F5等)不可用!!!在线等!!
- jsp:useBean can't find class 错误
- 郁闷:iis+resin,,,用8080端口可以访问,用默认端口就找不到文件。。。
- 用servlet把数据从中文sql server2000读出来是乱码!?
- 先到先得(在线等候)
- myeclipes里面不能启动tomcat问题,求帮忙,急!!!!
- jsp内嵌java,一个list的部分值取不出来,为什么???
那也就是必须要建一个静态的jsp页面 每次都要请求这个地址!我写的这个是N多个子页面,他们归于同一个主题,他们的内容模板都一样,地址不一样 请求的内容就不一样!这吧不会是建N多个静态的页面吧!请问这样的东西怎么处理?
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; public class toHtml extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String url="";
String name="";
ServletContext sc = getServletContext();
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
//String file_name=request.getParameter("file_name");//你要访问的jsp文件,如index.jsp
//则你访问这个servlet时加参数.如http://localhost/toHtml file_name=index
//url = "/jsp/indexmodel.jsp";//这是你要生成HTML的jsp文件,如
url = request.getParameter("sourceurl");
//http://localhost/index.jsp的执行结果.
//name=request.getRealPath("")+"\\jsp\\index.html";//这是生成的html文件名,如index.htm.
name=request.getRealPath("")+request.getParameter("aimurl");//这是生成的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();
FileOutputStream fos = new FileOutputStream(name); //把jsp输出的内容写到d:\test.htm
os.writeTo(fos);
fos.close();
response.setContentType("application/octet-stream");
response.setContentType("text/html; charset=GBK");
PrintWriter out=response.getWriter();
//out.println("首页生成完毕!");
String aim=request.getParameter("aim")==null?"":request.getParameter("aim");
if(aim.equals("")){
aim="self";
}
if(request.getParameter("turnjsp")!=null){
out.println("<script language='JavaScript'>");
out.println(request.getParameter("aim")+".location.href='"+request.getParameter("turnjsp").replace('|', '&')+"'");
out.println("</script>");
}else
if(request.getParameter("functionname")!=null){
out.println("<script language='JavaScript'>");
out.println(request.getParameter("aim")+"."+request.getParameter("functionname")+"();");
out.println("</script>");
}else
if(request.getParameter("refurbishinfo")!=null){
out.println("<script language='JavaScript'>");
out.println("alert('刷新"+new String(request.getParameter("refurbishinfo").getBytes("ISO8859_1"), "GBK")+"成功!');");
out.println("</script>");
}
} }
那也就是必须要建一个静态的jsp页面 每次都要请求这个地址!我写的这个是N多个子页面,他们归于同一个主题,他们的内容模板都一样,地址不一样 请求的内容就不一样!这吧不会是建N多个静态的页面吧!请问这样的东西怎么处理?是不是就像从新闻列表页面打开新闻详细页面一样?
你请求servlet,然后在里面组织要显示的数据,然后把数据传给最终显示的jsp,在jsp页面里把数据显示出来就行了。