今天主要說一下在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