作者kucom (kucom)
看板java
标题Re: [JSP ] 关於request.getRemoteHost(),JSP与Ser …
时间Tue Mar 3 18:36:31 2009
谢谢!
我有去tomcat\work\Standalone\localhost查看GetEnvVar.java
了解自已的问题了
tomcat会把jsp翻译成.java 再制成.class 传回浏览器
是因为servlet(java写法)比较难写,所以用jsp比较简单的写法供user使用,
再让tomcat是翻译成.java是吗? (有错请指正我 ^^")
再请问:
GenericServlet类别中的HttpServletRequest,HttpServletResponse与
ServletRequest,ServletResponse是一样的吗?
因为这二者都可以取得环境变数
(1)
import java.io.*;
import java.util.*;
import javax.servlet.*;
public class GetEnvVar extends GenericServlet
{
public void service(ServletRequest req,
ServletResponse res)
throws ServletException, IOException
{
ServletContext sc=getServletContext();
res.setContentType("text/plain");
ServletOutputStream sos=res.getOutputStream();
PrintWriter pw=new PrintWriter(sos,true);
pw.println("远端主机名称:"+req.getRemoteHost());
}
}
(2)
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class GetEnvVar2 extends HttpServlet
{
public void service(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{
ServletContext sc=getServletContext();
res.setContentType("text/plain");
ServletOutputStream sos=res.getOutputStream();
PrintWriter pw=new PrintWriter(sos,true);
pw.println("远端主机名称:"+req.getRemoteHost());
}
}
我的问题是:
(1)程式中的GetEnvVar继承GenericServlet,
GenericServlet提供ServletRequest,ServletResponse物件,
故可用GetRemoteHost()方法
那(2)程式中的GetEnvVar2继承HttpServlet,HttpServlet继承GenericServlet,
GetEnvVar2定义service()方法,提供HttpServletRequest req及
HttpServletResponse res二个物件
为什麽可以用HttpServletRequest的req.getRemoteHost()得知主机名称?
getRemoteHost()不是需由ServletRequest的req.getRemoteHost得知...
这些物件,类别间的关系及角色是...?
※ 引述《PsMonkey (痞子军团团长)》之铭言:
: 有的时候,书还是很重要的
: 一本扎实像样的 JSP 书籍,应该会告诉你这些东西
: ※ 引述《kucom (kucom)》之铭言:
: : 为什麽JSP写法(第一个程式)直接写request.getRemoteHost()就可得知主机名称,
: : 而Servlet的写法却须告知谁继承谁,建立req物件等等...
: : Servlet程式只要是有import javax.servlet.* 就是指Servlet伺服器程式吗?
: : 是不是有固定的写法?
: : Java与Java Servlet,Java Applet,JSP之间的关系,意义是什麽?
: JSP base on Servlet
: 只是 container 自动帮你把 .jsp 转成 Servlet
: Servlet base on Java
: 所有的 Servlet 都是 .java
: 你可以去你的 container 底下找一下 jsp 转出来的 servlet
: 很多问题就不是问题了(或是你也就不想深究了 XD)
: 至於把 applet 扯进来,感觉就变成是来乱的... =="
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.51.170
1F:推 PsMonkey:请有基本 OO 概念,然後查 API 03/04 00:54