编写一个StudentServlet,完成下列要求:
①该Servlet提供学生学号界面查询如下;
②当学生输入学号,且按下查询按钮后,该Servlet完成数据库查询,将该学生的记录显示输出。
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.sise;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Liugx
*/
public class StudentServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GBK");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet StudentServlet</title>");
out.println("</head>");
out.println("<body bgcolor=\"#ffffff\">");
if((request.getParameter("sno"))==null || (request.getParameter("sno")).equals("input number")){
out.println("<form method='post' action='/ServletApplication2/StudentServlet'>");
out.println("");
out.println("学生学号:<input type='text' name='sno' value='input number'/>");
out.println("<input type='submit' value='查询'/><br>");
out.println("</form> ");
}else if(!(request.getParameter("sno").equals("input number"))){
Vector<?> vc = new Vector<Object>();
out.println("<form method='post' action='/ServletApplication2/StudentServlet'>");
out.println("");
out.println("学生学号:<input type='text' name='sno'/>");
out.println("<input type='submit' value='查询'/><br>");
out.println("</form>");
out.println("<hr>");
out.println("<table border='1' ><tr>");
out.println("<th>学号</th><th>姓名</th><th>语文</th><th>数学</th>");
try {
if((vc = accessDB(Integer.parseInt((String) request.getParameter("sno")))) != null){
out.println("<tr>");
out.println("<td>"+vc.elementAt(0)+"</td>");
out.println("<td>"+vc.elementAt(1)+"</td>");
out.println("<td>"+vc.elementAt(2)+"</td>");
out.println("<td>"+vc.elementAt(3)+"</td>");
out.println("</tr>");
}else{
out.println("<tr>");
out.println("<td colspan='4'>没有记录</td>");
out.println("</tr>");
}
} catch (Exception e) {
e.printStackTrace();
}
}
out.println("</body>");
out.println("</html>");
out.flush();
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
public Vector<String> accessDB(int id) throws SQLException{
Vector<String> vc = new Vector<String>();
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
String url = "jdbc.mysql://localhost:3306/Student";
String username = "root";
String password = "2.7182818";
PreparedStatement myStatement = null;
ResultSet mySet = null;
try {
Connection myConn = DriverManager.getConnection(url,username,password);
myStatement = myConn.prepareStatement("select * from newstudent where sno=123");
//myStatement.setInt(1, id);
mySet = myStatement.executeQuery();
if (mySet != null) {
while(mySet.next()){
vc.add(Integer.toString(mySet.getInt(0)));
vc.add(mySet.getString("sname"));
vc.add(Integer.toString(mySet.getInt("chinese")));
vc.add(Integer.toString(mySet.getInt("math")));
}
}
myStatement.close();
mySet.close();
myConn.close();
return vc;
} catch (Exception e) {
e.printStackTrace();
}
return vc;
}
}