Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ch01;
- import java.io.IOException;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import javax.naming.Context;
- import javax.naming.InitialContext;
- import javax.naming.NamingException;
- 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 javax.sql.DataSource;
- @WebServlet("/GetNameData2")
- public class GetNameData2 extends HttpServlet {
- // 這個Servlet負責把「職務代理人姓名資料」傳回前端,並由JavaScript AJAX呼叫。
- private static final long serialVersionUID = 1L;
- private DataSource dataSource = null;
- @Override
- public void init() throws ServletException {
- super.init();
- // initialize method
- try {
- Context context = new InitialContext();
- dataSource = (DataSource) context.lookup("java:comp/env/jdbc/ExamOne");
- } catch (NamingException e) {
- e.printStackTrace();
- }
- }
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- processRequest(request, response);
- }// end of doGet method
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- processRequest(request, response);
- }// end of doPost method
- private void processRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
- /* Setting the Encoding of Input Data */
- request.setCharacterEncoding("UTF-8");
- /* Setting the encoding of the output data to the web page */
- response.setContentType("text/html; charset=UTF-8");
- Connection connection = null;
- Statement statement = null;
- ResultSet resultSet = null;
- StringBuilder stringBuilder = new StringBuilder();
- try {
- connection = dataSource.getConnection();
- String queryStatement = "SELECT cname FROM Employee";// 查詢資料指令,把名單查出來。
- statement = connection.createStatement();
- resultSet = statement.executeQuery(queryStatement);
- boolean isSecond = false;
- // flag第一次為false,第二次才被設定為true
- while (resultSet.next()) {
- // 邊查資料,邊動態產生名字陣列,並用逗號隔開。
- if (true == isSecond) {
- stringBuilder.append(",");
- } else {
- isSecond = true;
- }
- stringBuilder.append(resultSet.getString("cname"));
- }
- response.getWriter().print(stringBuilder.toString());// 一定要加這行程式碼印出來。才可以讓AJAX把動態產生的下拉式選單製作出來。
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- if (resultSet != null) {
- try {
- resultSet.close();
- resultSet = null;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- if (statement != null) {
- try {
- statement.close();
- statement = null;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- if (connection != null) {
- try {
- connection.close();
- connection = null;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- } // end of finally
- }// end of processRequest method
- }// end of getNameData2 Servlet
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement