jsp與SERVLET的區別

來源:互聯網
上載者:User

簡單的說,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/ 驗證察看結果

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.