Servlet 介绍

servlet 是运行在web服务器或应用服务器上的java程序, 它是一个中间层, 负责连接来自web浏览器或其他http客户端的请求和HTTP服务器上的数据库或应用程序.

为什么要构建动态网页?

  • 网页基于客户发送的数据, 例如搜索引擎, 在线商店, 要根据客户的选择来生成不一样的页面
  • 网页由频繁改变的数据导出, 如果网页是根据每个具体操作而生成的不同网页, 我们当然需要动态网页
  • 网页中使用了来自公司数据库或其他服务端数据源信息, 这个当然, 如果使用静态网页无法满足从数据库获得不同的数据.

最开始的动态网页生成, 利用servlet 是通过大量的 out.println 来实现的, 例如下边代码: (servlet 代码)

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*; public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String docType = "<!doctype html public \" -//w3c//DTD html 4.0 "
+ "Transitional //EN\ ">"\n";
out.println(doctype +
"<html>\n" +
"<head><title>hello</title></head>\n" +
"<body bgcolor = \"#FDF5F6\">"\n" +
"<h1>hello</h1>\n" +
"</body></html>"); }
}

从上边的 out.println 我们可以看出, 这样虽然可以创建动态网页, 但是十分麻烦.

JSP介绍

可以将 servlet 看做是含有HTML的java程序, 将jsp看做是含有java代码的html页面. 其实, 实际上二者是相同的, jsp 文档只不过是编写 servlet 的另一种方式, jsp 页面会被翻译成servlet, servlet 会被编译(java程序), 在请求期间运行的就是 servlet.

下面是 jsp 代码

   1:  <!doctype html public "-//w3d//dtd html 4.0 transitional //en">
   2:  <html>
   3:      <head>
   4:          <title>Welcome to our store</title>
   5:      </head>
   6:      <body bgcolor="#FDF5E6">
   7:          <h1>Welcoem to our store</h1>
   8:          <small>Welcome,
   9:              <!-- User name is "New user" for first-time visitors -->
  10:              <%= coreservlets.Utils.getUserNameFromCookie(request) %>
  11:              To access your account settings, click
  12:              <a href="Account-Settings.html">Here.</a>
  13:          </small>
  14:          <p>
  15:          Reqular html for rest of online store's web page
  16:      </body>
  17:  </html>

jsp 注重简化 html 的创建和维护. servlet 最适合于调用商业逻辑, 执行复杂操作. (jsp 偏向view, 而servlet偏向control)

01 Servlet & Jsp 技术概述的更多相关文章

  1. Struts框架——(一)用Servlet + JSP演示Struts基本原理

    一. 用Servlet + JSP演示Struts基本原理 struts是开源项目.它通过采用 Java Servlet/JSP 技术,实现了基于Java EE Web应用的MVC的应用框架.Stru ...

  2. <关于JSP技术>运行机制及语法概述(附对本次同济校内ACM选拔赛决赛的吐槽)

    (一)JSP运行的机制 JSP是一种建立在Servlet规范功能之上的动态网页技术,它们都是在通常的网页文件中嵌入脚本代码,用于产生动态内容,不过和ASP不同的是JSP文件中嵌入的是Java代码和JS ...

  3. Servlet,jsp,JSP技术 ,JSP编程

     一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 ...

  4. Servlet&&Jsp 概述

    主题 Servlet的作用 构建动态网页 Servlet代码初探 Servlet与其他技术的对比 Jsp的作用 Servlet的作用 Servlet是在web服务器或应用服务器上用来动态生成html的 ...

  5. Servlet组件之 jsp 技术

    JSP 简称java服务器页面(java server page),jsp和servlet实现了我们的开发需求.对于jsp技术我们首先需要知道他的组成    HTML+java+jsp内置对象=jsp ...

  6. Ajax+Jsp+servlet+json技术的使用

    Ajax+Jsp+servlet+json技术的使用 在使用json的时候,记得必须导入如下几个.jar包,最好是手动复制.jar包只lib路径下,否则可能出现异常. commons-beanutil ...

  7. JSP/SERVLET重定向技术综述

    1.RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个S ...

  8. Java Web之JSP技术

    JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比htm ...

  9. servlet&jsp高级:第三部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. decorator在Python中的作用

    decorator(装饰器)在python中作用,可以起到代码复用,也可以起到AOP(面向横切面)的作用. 另外很重要的一点应该就是function在python的世界中是作为一等公民存在的. 在py ...

  2. 转: codereview 工具平台建设

    一.  Rietveld  code review  (一套工具系统与平台) 1. http://www.cnblogs.com/fang9159/archive/2012/07/20/2591690 ...

  3. mysql 比较隐秘的问题

    2017-11-13 13:47:27:DEBUG DubboServerHandler-192.168.30.114:20990-thread-5 com.yryz.qshop.modules.in ...

  4. Linux环境搭建:2. 安装Ubuntu虚拟机

    我家淘宝店,主要协助同学做毕业设计:https://shop104550034.taobao.com/?spm=2013.1.1000126.d21.pPCzDZ 1. 创建虚拟机 1. 打开VMwa ...

  5. 网页HTML代码:滚动文字的制作

    本节笔者讲述HTML代码中比较特殊的标签,它能使网页中的文字滚动,并且可以控制其滚动的属性. 制作滚动文字 通过本章前面的学习,读者已经能够很好地控制各种段落文字的显示方式,不过无论怎么设置,文字都是 ...

  6. Python Hashtable的理解

           一个对象当其生命周期内的hash值不发生改变,而且可以跟其他对象进行比较时,这个对象就是Hashtable的.两者Hashtable的对象只有具有相同的hash值时才能判断为相同的对象. ...

  7. Android studio及eclipse中的junit单元測试

    转载请标明出处:http://blog.csdn.net/nmyangmo/article/details/51179106 前一段时间有人问我单元測试的相关内容,我稍作总结做日志例如以下: 由于我接 ...

  8. java Web笔记

    Get:标记在地址栏中 放在请求行中显示get?Username=...Password=... Post:使用的是二进制的上传下载 请求行不显示信息 数据传输量大数据隐蔽对文本没有 pst不能再浏览 ...

  9. CentOS 6.4 编译安装 gcc 4.8.1(转)

    今天在isocpp上看到“GCC 4.8.1 released, C++11 feature complete”这个消息,非常兴奋.终于有一个全面支持C++11语言特性的编译器了! 当然了,gcc仅仅 ...

  10. cocos2d-x:初探TestLua

    打开\cocos2d-x-2.2.3\cocos2d-win32.vc2012.sln sln里面有个TestLuaproject 初探完成...(不要逗) 启动一下project,cocos2d-x ...