HttpServlet继承GenericServlet,针对于HTTP协议所定制
在service()方法中直接把ServletRequest和ServletResponse转为HttpServletRequest和HttpServletResponse,并调用了重载的 service(HttpServletRequest,HttpServletResponse)
在service(HttpServletRequest,HttpServletResponse)获取了请求方式:request.getMethod() 根据请求方式创建了doGet,doPost
实际开发中,直接继承HttpServlet,并根据请求方式复写doXxx()方法接口
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取请求方式是GET还是POST
String method = request.getMethod();
System.out.println(method);
}
}
访问数据库例子
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String sql = "SELECT count(id) FROM users WHERE username = ? AND password = ?";
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
PrintWriter out = response.getWriter();
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql:///dbtes";
String user = "root";
String password2 = "123456";
connection = DriverManager.getConnection(url,user,password2);
statement = connection.prepareStatement(sql);
statement.setString(1, username);
statement.setString(2, password);
resultSet = statement.executeQuery();
if(resultSet.next()){
int count = resultSet.getInt(1);
if(count > 0){
out.print("Success");
}else{
out.print("Error");
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(resultSet != null){
resultSet.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(statement != null){
statement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(connection != null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}