实现servlet方法:
extends HttpServlet
implements javax.servlet.Servlet
extends GenericServlet
三种方式的区别(应用场景)
extends HttpServlet 完成了对http协议的解析和封装
什么时候使用哪种方式
implements javax.servlet.Servlet 一般不会
extends HttpServlet 基于Http协议,一般都用
extends GenericServlet 一般都不用,当遇到非http协议的时候可以用
Servlet的定义和作用
java代码
运行在Web Server
接收请求,返回响应
Web组件
Servlet的运行环境
Web容器(Web服务器,如Tomcat)
Servlet相关的接口、类和生命周期
super关键字
1、主要存在于子类方法中,用于指向子类对象中父类对象。
2、访问父类属性
3、访问父类函数
4、访问父类的构造函数
HTTP method GET is not supported by this URL
原因:
1、继承自HttpServlet的Servlet没有重写对于请求的响应的处理方法:doGet或doPost方法;默认调用父类的doGet或doPost等方法;
2、父类HttpServlet的doGet或doPost等方法的默认实现是返回状态代码为405的HTTP错误表示对于指定资源的请求方法不被允许。
解决方法
1、子类重写doGet或doPost等方法;
2、在你扩展的Servlet中重写doGet或doPost等方法来处理请求和响应时,不要调用父类HttpServlet的DdoGet或doPost等方法,去掉super.XX即
if(paramValue !=null)
{
byte[] bytes = paramValue.getBytes("iso-8859-1");
paramValue = new String(bytes,"utf-8");
}//转码
这种方法即支持post也支持,或者在前面使用req.setCharacterEncoding("uft-8");
当一个名称对应几个值时可以使用getParameterValues方法
String values[] = req.getParameterValues("like");//checkBox可以使用这
for(String s:values)
{
System.out.println(s+",");
}
res.setContentType("text/html;charset=UTF-8");//只能写在PrintWriter前,因为响应头信息是在内容前面
PrintWriter out = res.getWriter();
out.println("登陆成功");