Use texture coordinate generation or write a shader that assings texture coordinates to your teapot vertices or store the model together with its texture coordinates.
There are two texture methods : Normal Mapping or Displacement Mapping.
You do not understand what you’re talking about.
First, there is fundamentally precisely 1 texture method. Access the texture given texel coordinates X.
Secondly, what matters in terms of the resultant look is what the fragment shader does with the result. A texture can be interpreted as an image, a specular reflectance map, a diffuse reflectance map, a value and vector to displace the pixel, the normal to use in calculating lighting, a shadow map value for determining whether a light is in shadow of the light source, and any number of other methods (lookup tables, etc).
So your assertion of two methods is both too few and too many. There are plenty of ways to interpret a texture, but only one way to access it.
However, considering that you have not mastered the concept of texture mapping and texture coordinates, it is probably best for you to, for the present time, only deal in image textures. That is, for each point along the surface, there is a mapping to a position on an image that should be used as the base color (before lighting) of the rendered object.