1. 程式人生 > >JAVA寫接口傻瓜(#)教程(四)

JAVA寫接口傻瓜(#)教程(四)

應用 那種 get請求 get 響應 文件 cut rom not

  接上篇

  7、sevlert

    啊啊啊終於寫到最重要的實現部分了。Servlet = Service + Applet,表示小服務程序。Servlet 是在服務器上運行的小程序。這個詞是在 Java applet的環境中創造的,Java applet 是一種當作單獨文件跟網頁一起發送的小程序,它通常用於在客戶端運行,結果得到為用戶進行運算或者根據用戶互作用定位圖形等服務。服務器上需要一些程序,常常是根據用戶輸入訪問數據庫的程序。這些通常是使用公共網關接口(Common Gateway Interface,CGI)應用程序完成的。然而,在服務器上運行Java,這種程序可使用 Java 編程語言實現。在通信量大的服務器上,JavaServlet 的優點在於它們的執行速度更快於 CGI 程序。各個用戶請求被激活成單個程序中的一個線程,而無需創建單獨的進程,這意味著服務器端處理請求的系統開銷將明顯降低。

    看不懂也沒關系,我們只要知道,有了servlet,我們就可以返回所請求的數據了。sevlert內置有doGet和doPost,分別響應發出的get請求和post請求。這裏先學習一下最簡單的get,還是不帶參數的那種

    

import com.alibaba.fastjson.JSONObject;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.*;
import java.util.Date;

@WebServlet("/hello")//註解,免於在xml註冊,/hello表示在主頁後加/hello訪問此頁面
public class test extends HttpServlet {
    private String message;
    public void init() throws ServletException{

    }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {//相應不帶參數的get

        String dbURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=S-T";
        String userName="sa";
        String userPwd="111";
        String sql="select * from Student";
        List<student> students=new ArrayList<>();
        Connection dbConn=null;
        try {
            String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
            Class.forName(driverName);//反射JDBC包,這個一定要加,不然會報錯
            // 設置響應內容類型
            response.setContentType("text/html");
            response.setCharacterEncoding("UTF-8");
           dbConn= DriverManager.getConnection(dbURL,userName,userPwd);
            Statement statement=dbConn.createStatement();
            ResultSet resultSet=statement.executeQuery(sql);
           while (resultSet.next()){
               student st=new student();
               st.setName(resultSet.getString("Sname"));
               st.setId(resultSet.getString("Sno"));
               st.setSex(resultSet.getString("Ssex"));
               st.setAge(resultSet.getString("Sage"));
               students.add(st);
           }
            response.getWriter().println(JSONObject.toJSONString(students));//註意這裏不是控制臺輸出了,是HttpServletResponse,用於返回json給http請求方
            //out.println(JSONObject.toJSONString(resultSet));
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        finally {
            try
            {//關閉連接
                if(dbConn!=null)
                {
                    dbConn.close();
                    dbConn=null;
                }
            }
            catch(Exception ex)
            {
            }
        }

    }
}

    訪問http://localhost:8081/a/hello,得到json數組(簡單顯示json數據,沒加狀態碼之類的。用的是以前的項目,所以和教程一不太一樣,本質上沒區別的)

    技術分享圖片

    

JAVA寫接口傻瓜(#)教程(四)