zoukankan      html  css  js  c++  java
  • jsp和servlet的区别联系

    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

  • 相关阅读:
    第19 章 : 调度器的调度流程和算法介绍
    第18 章 : Kubernetes 调度和资源管理
    关于一次配合开发工作而产生的服务器内核参数问题(Android 网络问题)
    第17 章 : 深入理解 etcd:etcd 性能优化实践
    第16 章 : 深入理解 etcd:基于原理解析
    第15 章 : 深入解析 Linux 容器
    第14 章 : Kubernetes Service讲解
    第13 章 : Kubernetes 网络概念及策略控制
    第12 章 : 可观测性-监控与日志
    第11 章 : 可观测性:你的应用健康吗?(liveness和readiness)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7863174.html
Copyright © 2011-2022 走看看