1.純JSP項目

我記得在很久很久以前,只有JSP,沒有什么javabean沒有jstl,沒有框架。jsp的誕生是為了應(yīng)對asp,所以jsp就顯得很簡單,編寫完往上一拖刷新就可以執(zhí)行了。不過jsp是編譯性的腳本,需要先編譯成對應(yīng)servlet,然后再在web容器內(nèi)運行。asp是解釋性語言,基于web服務(wù)器比如iis,解釋執(zhí)行的,只有在執(zhí)行時才能發(fā)現(xiàn)錯誤。

**
先講講jsp內(nèi)置對象,很關(guān)鍵,也很有用:**

  • request:提交后服務(wù)器端進行參數(shù)獲取
  • response:服務(wù)器端把數(shù)據(jù)返回至瀏覽器等
  • session:服務(wù)器端會話等信息
  • out:頁面輸出字符串等
  • application:獲取服務(wù)器端的參數(shù)
  • ...
    上面這幾個最常用,尤其是前四個,哪個項目都會用到,務(wù)必掌握清楚。后續(xù)講各個項目時會依次講到這些。

編寫了一個簡單的例子,算是憶往昔,崢嶸歲月愁吧。純jsp 的網(wǎng)站我現(xiàn)在還保留著好幾個,當時真是勇氣可嘉,竟然把jsp當成一門語言學(xué)了。

首先新建一個web工程,

idea結(jié)構(gòu)圖.png

工程結(jié)構(gòu)如上圖所示。
只需要加一個mysql的依賴包,在pom.xml增加:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.18</version>
        </dependency>

新建了三個jsp文件,一個是list.jsp,用于員工列表,一個是add.jsp,用于新增員工,一個是add_do.jsp,用于執(zhí)行新增。

list.jsp:

<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    員工列表
    <a href="add.jsp"> 新增</a>
    <br />

    <table border="1">
        <tr>
            <td>編號</td>
            <td>姓名</td>
        </tr>
        <%
            Connection conn = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");//指定連接類型  
                conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test", "root", "root");//獲取連接
            } catch (Exception e) {
                e.printStackTrace();
            }
            PreparedStatement pstmt = conn.prepareStatement("select * from staff");
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
        %>
        <tr>
            <td><%=rs.getString(1)%></td>
            <td><%=rs.getString(2)%></td>
        </tr>
        <%
            }
            conn.close();
        %>
    </table>
</body>
</html>

add.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    新增員工

    <form action="add_do.jsp" method="post">
        姓名:<input type="text" name="name"><br> <input
            type="submit" value="保存">
    </form>
</body>
</html>

add_do.jsp:

<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    <%
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");//指定連接類型  
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/px", "root", "root");//獲取連接  
        } catch (Exception e) {
            e.printStackTrace();
        }
        String name = request.getParameter("name");
        PreparedStatement pstmt = conn.prepareStatement("insert into staff(name) values(?)");
        pstmt.setString(1, name);
        pstmt.executeUpdate();
        conn.close();
        response.sendRedirect("list.jsp");
    %>
</body>
</html>

純jsp工程的問題

  • 代碼不能重用,比如連庫,用到的地方都得重新寫一遍,很麻煩
  • 沒有javabean,所有代碼都需要先在web容器進行解析,編譯成servlet,再執(zhí)行,效率很低
  • jsp展示和連庫等邏輯耦合在一起,改起來很麻煩

源碼下載

本工程詳細源碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • 轉(zhuǎn)自陳明乾的博客,可能有一定更新。 轉(zhuǎn)原文聲明:原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標明文章 原始出處 、...
    C86guli閱讀 4,730評論 6 72
  • 前面講了servlet入門實踐現(xiàn)在開始介紹jsp入門實踐,開發(fā)環(huán)境的搭建請參考我前面的tomcat的文章,jsp入...
    伊豚wall閱讀 3,385評論 2 56
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題。 96、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,426評論 0 10
  • 糖塑糖塑這一項目憑借其出色的外貌和可口的味道在2008年入選國家級非遺,項目包括豐縣糖人貢、天門糖塑和成都糖畫。匠...
    宿方閱讀 900評論 2 10