JAVA寫接口傻瓜(%)教程(五)

  今天主要說一下在URL 中使用?傳值的問題。在顯式的使用get方法獲取特色數據時,通常會經過?傳遞參數值,sevlert根據參數在數據庫中對應的查找內容。因此,SQL語句須要拼接,要加上後面的參數。參數的獲取使用request.getParameter()方法,裏面註明得到參數的名稱。html

  

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";
        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);
            String sql="select * from Student where Sage="+request.getParameter("age");//拼接SQL語句
            System.out.println(sql);
            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請求方
            //response.getWriter().println(request.getParameter("age"));
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        finally {
            try
            {//關閉鏈接
                if(dbConn!=null)
                {
                    dbConn.close();
                    dbConn=null;
                }
            }
            catch(Exception ex)
            {
            }
        }

    }
}

  嘗試查找年齡爲20歲的學生信息java

  

  輸出sql

相關文章
相關標籤/搜索