关于servlet和jsp的问题? 100

1不是说servlet是接口吗,那为什么说jsp编译后叫servlet类?有点晕了,怎么回事?2还有既然jsp本身编译后是servlet类,那为什么我自己还要创建一个se... 1不是说servlet是接口吗,那为什么说jsp编译后叫servlet类?有点晕了,怎么回事?

2还有既然jsp本身编译后是servlet类,那为什么我自己还要创建一个servlet类去继承httpservlet呢?那岂不是等于有2个servlet类?到底有何用意?

3如果不用jsp,我在myeclipse里创建一个servlet类,然后自己写html然后输出到页面显示,具体流程是怎么弄?比如输出一个 大家好 我就想看下效果,看清楚不是用jsp方式,是我用out.print自己写html的方式。

jsp的方式,就是在浏览器地址栏输入http://localhost:8080/某某.jsp
现在不用jsp方式,就用servlet方式,请问地址栏怎么弄我不会了,http://localhost:8080/关键是这里是写类名.class吗??

而且是不是还要配置下web.xml?

请把具体流程告诉我下,比如先创建一个servlet类 ,然后如何如何 谢谢啦
展开
 我来答
大胡子J
2013-08-18 · TA获得超过221个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:160万
展开全部
  1. servlet是一种服务器的组件类,然而因为编程标准确实有servlet接口,但两者是不同的概念,不能混为一谈。

  2. 3.  每一个jsp都可以在tomcat的work目录下寻找到相应的java文件(servlet),当浏览器发送一个请求比如:www.asdg.com/index.jsp,那么服务器先获取index.jsp文件,再通过一个相应的serlvet处理,然后再响应与jsp对应html字符串给浏览器进行渲染。我这边的index.jsp在tomcat的work目录下找到的相应项目的java文件如下

    public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
        implements org.apache.jasper.runtime.JspSourceDependent {

      private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();

      private static java.util.List _jspx_dependants;

      private javax.el.ExpressionFactory _el_expressionfactory;
      private org.apache.AnnotationProcessor _jsp_annotationprocessor;

      public Object getDependants() {
        return _jspx_dependants;
      }

      public void _jspInit() {
        _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
        _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
      }

      public void _jspDestroy() {
      }

      public void _jspService(HttpServletRequest request, HttpServletResponse response)
            throws java.io.IOException, ServletException {

        PageContext pageContext = null;
        HttpSession session = null;
        ServletContext application = null;
        ServletConfig config = null;
        JspWriter out = null;
        Object page = this;
        JspWriter _jspx_out = null;
        PageContext _jspx_page_context = null;


        try {
          response.setContentType("text/html;charset=UTF-8");
          pageContext = _jspxFactory.getPageContext(this, request, response,
           null, true, 8192, true);
          _jspx_page_context = pageContext;
          application = pageContext.getServletContext();
          config = pageContext.getServletConfig();
          session = pageContext.getSession();
          out = pageContext.getOut();
          _jspx_out = out;

          out.write('\r');
          out.write('\n');

    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

          out.write("\r\n");
          out.write("\r\n");
          out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");
          out.write("<html>\r\n");
          out.write("  <head>\r\n");
          out.write("    <base href=\"");
          out.print(basePath);
          out.write("\">\r\n");
          out.write("    \r\n");
          out.write("    <title>My JSP 'index.jsp' starting page</title>\r\n");
          out.write("\t<meta http-equiv=\"pragma\" content=\"no-cache\">\r\n");
          out.write("\t<meta http-equiv=\"cache-control\" content=\"no-cache\">\r\n");
          out.write("\t<meta http-equiv=\"expires\" content=\"0\">    \r\n");
          out.write("\t<meta http-equiv=\"keywords\" content=\"keyword1,keyword2,keyword3\">\r\n");
          out.write("\t<meta http-equiv=\"description\" content=\"This is my page\">\r\n");
          out.write("\t<!--\r\n");
          out.write("\t<link rel=\"stylesheet\" type=\"text/css\" href=\"styles.css\">\r\n");
          out.write("\t-->\r\n");
          out.write("  </head>\r\n");
          out.write("  \r\n");
          out.write("  <body>\r\n");
          out.write("    <a href=\"Hello.action\">Hello</a><br/><br/>\r\n");
          out.write("    <form action=\"Login.action\">\r\n");
          out.write("        <input type=\"text\" name=\"username\"><br/>\r\n");
          out.write("        <input type=\"text\" name=\"password\"><br/>\r\n");
          out.write("        <input type=\"submit\" value=\"submit\">\r\n");
          out.write("    </form>\r\n");
          out.write("  </body>\r\n");
          out.write("</html>\r\n");
        } catch (Throwable t) {
          if (!(t instanceof SkipPageException)){
            out = _jspx_out;
            if (out != null && out.getBufferSize() != 0)
              try { out.clearBuffer(); } catch (java.io.IOException e) {}
            if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
          }
        } finally {
          _jspxFactory.releasePageContext(_jspx_page_context);
        }
      }
    }
    通过这种方式,就可以实现动态页面的效果。比如说,你在jsp页面中镶嵌了有java代码(用来显示数据),那么servlet类就会在组合html字符串的时候通过java代码来组合这些数据,从而实现动态效果。而如果使用html,它的响应机制是相同的,只是不需要再进行相应的servlet类的处理。如果使用html开发,基本流程和jsp差不多,web.xml配置,写servlet。只是你无法在html中动态嵌入数据,但是可以用js来处理,只是会比较麻烦
匿名用户
2013-08-09
展开全部
servlet是要在web.xml中配置的
http://wenku.baidu.com/view/4c6c4d828762caaedd33d4ec.html
这篇讲得还可以,先参考一下吧。其实servlet现在直接使用不多,正式开发,多数都使用框架的了,所以理解就好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式