jsp和servlet的区别联系

简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。    后来SUN推出了类似于ASP的镶嵌型的JSP,把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如ASP,PHP,JSP都是镶嵌型的SCRIPT语言。 

JSP在本质上就是SERVLET,但是两者的创建方式不一样.

Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Servlet来生成动态网页很不直观.

JSP由HTML代码和JSP标签构成,可以方便地编写动态网页.
因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.

在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.

JSP是Servlet技术的扩展,本质上就是Servlet的简易方式

JSP编译后是“类servlet”

Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP是Java和HTML组合成一个扩展名为.jsp的文件。

JSP侧重于视图,Servlet主要用于控制逻辑。

看一个简单的jsp+servlet的例子,消化消化:转载自:http://hi.baidu.com/wy521ly/blog/item/0523092af322b19d033bf648.html

简单jsp+servlet实例
2008-09-02 20:24

开发环境myeclipse+tomcat5

先创建web project,项目名为test,

在webroot 目录下创建login.jsp文件

login.jsp

<body>
      <form action="login">
      username:<input type="text" name="username"><br>
      password:<input type="password" name="pwd"><br>
      <input type="submit"> 
      </form>
     </body>

在scr目录下的com.ht.servlet

编写AcountBean.java文件

package com.ht.servlet;

public class AcountBean {
private String username="";
private String password="";
public String getPassword() {
     return password;
}
public void setPassword(String password) {
     this.password = password;
}
public String getUsername() {
     return username;
}
public void setUsername(String username) {
     this.username = username;
}

}

编写servlet类CheckAccount.java文件

package com.ht.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.*;

public class CheckAccount extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
     HttpSession session = request.getSession();
     AcountBean account = new AcountBean();
     String username = request.getParameter("username");
     String pwd = request.getParameter("pwd");
     account.setUsername(username);
     account.setPassword(pwd);
     if ((username != null) && (username.trim().equals("jsp"))) {
      if ((pwd != null) && (pwd.trim().equals("1"))) {
       System.out.println("session");
       session.setAttribute("account", account);
       String logon_suc = "session.jsp";
       response.sendRedirect(logon_suc);
       return;
      }
     }
     String logon_fail = "fail.jsp";
     response.sendRedirect(logon_fail);
     return;
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

doGet(request, response);
}

}

在webroot目录下

编写session.jsp文件 成功后跳转

<body>
     <%
com.ht.servlet.AcountBean account=(com.ht.servlet.AcountBean)session.getAttribute("account");
      %>
        username: <%=account.getUsername() %>
       <br>
       password:<%=account.getPassword() %>
     </body>

编写fail.jsp文件 失败后跳转

<body>
       Logon Failed <br>
     </body>

下面是web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     <welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list>
  
  
     <servlet>
            <description>This is the description of my J2EE component</description>
       <display-name>This is the display name of my J2EE component</display-name>
         <servlet-name>CheckAccount</servlet-name>
       <servlet-class>com.ht.servlet.CheckAccount</servlet-class>
     </servlet>

<servlet-mapping>
       <servlet-name>CheckAccount</servlet-name>
       <url-pattern>/login</url-pattern>
     </servlet-mapping>
</web-app>

通过myeclipse运行 配置tomcat     这里省略。。。

http://127.0.0.1:8080/tset/ 验证察看结果

参考:

servlet与jsp的联系与区别 - 宗学唯zi - 博客园
https://www.cnblogs.com/zxw0004/p/5008230.html

jsp和servlet的区别联系的更多相关文章

  1. Jsp与servlet的区别 1

     Jsp与servlet的区别 2011-12-09 16:27:47 分类: Java 1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识 ...

  2. Jsp与servlet的区别

     Jsp与servlet的区别 2011-12-09 16:27:47 分类: Java 1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识 ...

  3. jsp和servlet的区别和联系

    jsp和servlet的区别和联系:1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能 ...

  4. 转:jsp与servlet的区别与联系

    jsp与servlet的区别与联系 - gsyabc - 博客园https://www.cnblogs.com/sanyouge/p/7325656.html jsp和servlet的区别和联系:1. ...

  5. 描述JSP和Servlet的区别、共同点、各自应用的范围

    描述JSP和Servlet的区别.共同点.各自应用的范围 解答:JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Se ...

  6. Servlet是什么?JSP和Servlet的区别。Servlet的生命周期。

    Servlet(Server Applet),全称Java Servlet, 是用Java编写的服务器端程序.而这些Sevlet都要实现Servlet这个借口.其主要功能在于交互式地浏览和修改数据,生 ...

  7. jsp和servlet的区别

    servlet是服务器端的程序,动态生成html页面发到客户端,但是这样 程序里有许多out.println(),java和html语言混在一起很乱.所以 后来推出了jsp.其实jsp就是servle ...

  8. JSP和Servlet的区别。

    1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)2.jsp更擅长 ...

  9. Java中jsp和Servlet的区别

    1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务 ...

随机推荐

  1. 移动端去掉按钮button默认样式

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  2. 从有序数组中查找某个值 low_bound

    二分搜索 题意: 给定长度为n的单调不下降数列a0, ...an-1和一个数k,求满足ai>=k条件的最小的i. 不存在的情况下输出n. 输入: 5        3 2 3 3 5 6 输出: ...

  3. sql查字符串包含某字段查询

    select * from dbo.V_AgreementMaterialQuery where '上海市' like '%'+SaleRange+'%' ‘上海市’>SaleRange(上海)

  4. 37:密码截取(回文串manacher算法)

    题目描述:Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解.比如 ...

  5. mysql中的类型转换和精确位数

    select round(123.5); 四舍五入 select floor(123.5);取整数部分 select ceil(123.5);四舍五入

  6. wifi认证Portal开发系列(四):portal协议的java封装

     一.报文封装类 AbstractPortalMsg.java Portal协议数据报文封装类 package org.yoki.edu.common.protocol.portal.msg; imp ...

  7. 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bccced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中

    // test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  8. Spark源码分析之六:Task调度(二)

    话说在<Spark源码分析之五:Task调度(一)>一文中,我们对Task调度分析到了DriverEndpoint的makeOffers()方法.这个方法针对接收到的ReviveOffer ...

  9. 集群 安装 配置FastDFS

    FastDFS 集群 安装 配置 这篇文章介绍如何搭建FastDFS 集群 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载 ...

  10. redis写磁盘报错Cannot allocate memory

    查看 Redis 日志发现系统在频繁报错: [1821] 10 Nov 09:59:04.086 # Can't save in background: fork: Cannot allocate m ...